Skip to content

Postivity Violated with Improved Max Approximator and Non-Area Weighting #133

@zfergus

Description

@zfergus

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions