Penalty force method

Please don't post Bullet support questions here, use the above forums instead.
SimonDM
Posts: 3
Joined: Fri Jun 15, 2007 2:50 pm

Penalty force method

Post by SimonDM »

Hello, I'm working on the topic of yarn simulation, slightly related to cloth simulation. I have already written a working program. The collision resolution method I used to far however was not one I found back in literature:

1. project the penetrating point normal on the surface
2. adjust the speed: v = vT - beta*vN
3. adjust the force: F = F - µ*FN*vT/||vT||

T and N stand for the tranversal and normal component, beta is 0 for inelastic collision and 1 for fully elastic collision and µ is the friction coefficient.

I recently found that a penalty force F = k*d (d the penetration distance)method gives a better result, as in the tension profile is smoother. However I have a few questions regarding this:

1. How best to choose k?
2. Is there a maximum/minimum limit to k?
3. What about adding damping?

Concerning question 2, I thought the maximum would be determined by the CFL (Courant Friedrichs Levy if I remember correctly) criterion and be limited to E/deltal with E the elasticity modulus of my yarn and deltal the yarn grid size, but upon simulation this doesn't seem to be the case.

Concerning question 3, I tried modelling surface contact using a spring damper system. From underdamped systems I then find a value for the viscosity of my damper, using the mathematical requirement that the speed when a yarn node bumps off the surface again needs to be equal to the original speed times beta, in the opposite direction. If beta equals 0 however, this means that it may take almost forever for the node to be lying on the surface again. Is there a better way to resolve with a certain damping?