Remix.run Logo
MITSardine 5 days ago

By contact simulation, do you mean solid dynamics? (mechanics is not my field)

I'm intrigued by the use of level set domains here. I've only encountered those in other type of numerical simulation where the intent is in avoiding surface meshing.

I suppose moving an object in this context is as simple as composing its level set function with a translation and rotation. However, deforming is non trivial, especially local deformations, right?

How do you efficiently resolve collisions? At the scale of an element, it seems to be a simple check of nowhere should both level set functions be negative. But how do you select the elements to check? Do you somehow keep track of only the elements traversed by the objects in a time step, or some other method? I would guess your method should be more efficient than intersecting meshes, is that what you've found?

I'm particularly interested by your mention of high-order boundary parameterizations, what do you mean by that exactly?

Sorry to bombard you with questions, I was intrigued by a combination of things I'd never seen together before!

sfpotter 5 days ago | parent [-]

Yeah. All of this is born out of a desire to avoid meshing, for some definition of meshing. I'm on a jag that explicitly meshing or computing topology should be unnecessary for this kind of simulation. People have done contact simulations based on penalty methods or Lagrange multipliers using level set descriptions of domains for quite a while, which just involve integrating over overlapping regions, which shouldn't be that hard to detect... in principle... but I'm not quite there yet.

What I'm saying about level set domains is maybe a bit misleading. I'm not talking about level set methods like you might find in the book by Fedkiw and Osher, per se (but if I found something useful from that literature, I wouldn't hesitate to borrow it...). They are easy to model with and give clean geometry compared to e.g. a B-rep. I'm only interested in messing around with toy and artificial problems at this point, so it isn't much of a limitation. At the same time, given a B-rep, there are a number of ways to get clean level set geometry from them...

By high-order boundary parametrization, I mean: given a implicit surface, how to quickly go to a parametric representation of the boundary which is accurate to many (say, 13+) digits that is relatively space efficient, even in the presence of sharp features in the level set (common for CSG...). This is easy in 2D, harder in 3D...

I guess the subtle point here is that for a finite element simulation, the only thing that really matters is integration. For that, you only need a soup of patches; there's no real need to assemble them into a B-rep or any other kind of mesh. But then if you take a time step, you have to think about converting from parametric back to implicit. I'm trying to figure out if there is some kind of hybrid parametric-implicit data structure that is particularly useful for simulations of this type. Remains to be seen, but there are many fun geometry problems to solve along the way.