ipc-toolkit icon indicating copy to clipboard operation
ipc-toolkit copied to clipboard

Postivity Violated with Improved Max Approximator and Non-Area Weighting

Open zfergus opened this issue 1 year ago • 0 comments

When using the improved max approximator, but not area weighting, the resulting barrier potential can be negative (i.e., attractive instead of repulsive). This only occurs in cases of parallel edges using the mollified formulation. The issue does not occur when using area weighting.

Background

Edge-edge mollification is still used, but not mentioned in the Convergent IPC paper. The original mollified edge-edge energy is

$$ \Psi_w(e) ~= \sum_{e_2 \in E \setminus e} m(e, e_2) b(d(e, e_2), \hat{d}) ~\approx \max_{e_2 \in E \setminus e} m(e, e_2) b(d(e, e_2), \hat{d}). $$

The improved max approximator with mollification is

$$ \Psi_w(e) = \sum_{e_2\in{E}\setminus{e}} m(e, e_2) b(d(e, e_2), \hat{d}) - \sum_{x\in{V}\setminus{e}} \sum_{e_3\in (E\cap x) \setminus e} m(e, e_3) b(d(x, e), \hat{d}) + \sum_{x \in V \setminus e} b(d(x,e), \hat{d}) $$ $$ = \sum_{e_2\in{E}\setminus{e}} m(e, e_2) b(d(e, e_2), \hat{d}) - \sum_{x\in{V}\setminus{e}} \left(\left[\sum_{e_3\in (E\cap x) \setminus e} m(e, e_3) b(d(x, e), \hat{d})\right] - b(d(x,e), \hat{d}) \right) $$ $$ = \sum_{e_2\in{E}\setminus{e}} m(e, e_2) b(d(e, e_2), \hat{d}) - \sum_{x\in{V}\setminus{e}} \left(\left[\sum_{e_3\in (E\cap x) \setminus e} m(e, e_3)\right] - 1 \right) b(d(x,e), \hat{d}) $$ $$ = \sum_{e_2\in{E}\setminus{e}} m(e, e_2) b(d(e, e_2), \hat{d}) - \sum_{x\in{V}\setminus{e}} (\rho_m(x, e) - 1) b(d(x, e), \hat{d}), $$

where

$$ \rho_m(x, e_1) = \sum_{e_2 \in (E \cap x) \setminus e_1} m(e_1, e_2), $$

and $E \cap x$ is the set of edges that contain $x$ as an end-point. The function $m$ is our edge-edge mollification function

$$ m = \begin{cases}-\frac{1}{\epsilon_{\times}^2} c^2+\frac{2}{\epsilon_{\times}} c & c<\epsilon_{\times}, \ 1 & c \geq \epsilon_{\times},\end{cases} $$

where $c= |e_1 \times e_2 |^2$ and $\epsilon_{\times}=10^{-3} |\bar{e}_1|^2 |\bar{e}_2|^2.$

Environment (please complete the following information):

  • OS and Version: macOS
  • Compiler and Version: Apple clang version 16.0.0

zfergus avatar Nov 10 '24 01:11 zfergus