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

Co-dimensional simulations

Open sdast9 opened this issue 1 year ago • 3 comments

Quick question: Does this toolkit include the ability to handle co-dimensional simulations similar to Co-IPC?

sdast9 avatar Jul 14 '22 20:07 sdast9

I am not sure if you mean can the toolkit completely perform codimensional FEM simulations like in the CIPC paper, or if the toolkit has the necessary components to implement CIPC?

This code base includes the necessary components in order to add the IPC's frictional contact model to a simulation pipeline. This includes computing the barrier potentials, smooth friction dissipative potential, and performing CCD. What the toolkit does not have is the FEM components necessary to implement codimensional FEM (FEM basis, elasticity models, and optimization framework for time-stepping).

That being said, this toolkit contains most of the components shown in the CIPC paper.

Implemented

These features from the CIPC paper are already implemented.

  • Support for codimensional triangle-triangle, triangle-edge, triangle-point, edge-edge, and edge-point (in 2D) frictional contact.
    • This is sufficient for standard IPC and a lot of CIPC, but misses some types of contact (see below)
  • The IPC thickness model (i.e., $\xi$ offset in the barrier potential)
  • CCD between codimensional triangle-triangle, triangle-edge, triangle-point, edge-edge, and edge-point (in 2D)
    • This is using the Tight-Inclusion CCD method for guaranteed conservative CCD under floating-point
  • Thickness offset in the CCD
    • This is handled through Tight-Inclusion's minimum separation CCD.

Missing Features

The following components are missing, but could be easily added (I am happy to add them).

  • Support for codimensional edge-point (in 3D) and point-point contact.
    • These are important for contacts between codim. edges with codim. points and for contacts between particles (like in Fig. 22 "Granules on cloth" of the CIPC paper)
  • Strain limiting
    • This is more on the side of FEM but could be added to the toolkit. My only concern is it is a little out of scope.
  • CCD for contacts between edge-point (in 3D) and point-point contact
    • I believe we can add these using Tight-Inclusion CCD
  • Additive CCD
    • Instead we choose to use Tight-Inclusion because of its guarantees

zfergus avatar Jul 14 '22 21:07 zfergus

Thanks so much. My main interest is having a more robust discrete elastic rod framework than is currently implemented in Co-IPC. Eventually, I would want to be able to simulate rods interacting with a deformable solid geometry. Co-IPC gets 75% of the way there as currently written, but the implementation of rod physics is limited (only considers bending and rods that are straight in their stress-free configuration). I'm not a developer, so I'm just trying to determine the path of least resistance given my skills. Any plans to bring discrete elastic rods to polyfem (hint, hint). ;-) Seriously though, your work is amazingly impressive and appreciated! Thank you for bringing these tools to the public.

sdast9 avatar Jul 15 '22 13:07 sdast9

Thank you for your nice comments. Adding shell and rod models to PolyFEM is something I have wanted to play with for a while, but I don't have a research project that motivates implementing it. I think it will eventually be implemented, but no timeline right now.

zfergus avatar Jul 15 '22 14:07 zfergus

Small update: #22 added the thickness offset in the CCD.

zfergus avatar Jan 17 '23 14:01 zfergus