acls (Accurate CLS, Desjardins et al. 2008)
intsharp/sharpening.py
Accurate CLS sharpening
Supports: 1D and 2D (selected automatically based on domain)
Same flux structure as Olsson-Kreiss, with the normal obtained from an algebraic inversion field:
\[ \text{RHS} = \nabla \cdot \bigl[\epsilon (\nabla\alpha \cdot \mathbf{n})\mathbf{n} - \alpha(1-\alpha)\mathbf{n}\bigr] \]
with \( \mathbf{n} = \nabla\phi_{\mathrm{inv}}/|\nabla\phi_{\mathrm{inv}}| \) and \( \phi_{\mathrm{inv}} = \epsilon \ln(\alpha/(1-\alpha)) \).
Update:
\[ \alpha^{n+1} = \alpha^n + \Delta t \cdot \Gamma \cdot \text{RHS} \]
Parameters:
eps_target: Target interface thickness \( \epsilon \)strength: Sharpening strength \( \Gamma \)