Using Signature Function to Calculate Thin Sheet Location

48 views
Skip to first unread message

Muhammad Osama

unread,
Nov 19, 2025, 5:34:27 PM (9 days ago) Nov 19
to basilisk-fr

Hello everyone,

I’m working on a 3D simulation of air-blast atomization of a thin liquid sheet. To avoid using refinement level 13 across the entire interface (which is computationally impossible for us), I adapted the Pulsed_Jet example (sandbox/ykulkarni/Pulsed_Jet_atomisation/Pulsed_jet_MD.c). My idea is to use the signature function to detect the point where the sheet is about to break (s[] == 1) and locally increase the mesh up to level 13 there while keeping lower refinement 10 elsewhere, using refine() and unrefine().

This approach works in a simple 2D test (attached drop-impact example): the code correctly refines where s == 1 (the ligament in signature.h). However, in 3D the mesh does not refine near the expected breakup location. Instead, refinement level 13 appears at apparently random locations away from the thin part of the sheet (see attached 3D interface image).

Attached is 2D drop impact code (shows signature calculation and adapt() routine) and screenshot of the 3D interface showing level 13 refinement away from the thin region

Could you please take a look and suggest possible causes? For example, could this be due to how the signature is computed in 3D, indexing differences, thresholds used in adapt(), or something else I’m overlooking? Any pointers or suggestions would be greatly appreciated.

Thanks,
Muhammad

cells.png
splash.c

StephaneZaleski

unread,
Nov 20, 2025, 3:11:10 AM (8 days ago) Nov 20
to basilisk-fr
Hi

   The signature function sometimes detects thin regions where they are not. If you find a fix for this I would appreciate if you let the list know. 

  Hope it helps

SZ 
Reply all
Reply to author
Forward
0 new messages