Calculating collision: finite elements

Click For Summary

Discussion Overview

The discussion focuses on the challenges of calculating collisions in a finite volume scheme for simulating the movement of yarn, particularly when it interacts with rigid surfaces. Participants explore various methods to handle collision dynamics, tension oscillations, and numerical stability in their models.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant describes a finite volume scheme for yarn movement and outlines steps for calculating collisions, noting issues with oscillating tension forces.
  • Another participant suggests incorporating damping to reduce oscillations, proposing a specific formula involving a damping coefficient.
  • A different participant mentions using a fourth order damping method but still experiences oscillations, questioning the collision handling algorithm.
  • One participant requests clarification on the collision scenario and proposes modeling collisions as spring interactions to mitigate force fluctuations.
  • Another participant explains a spring-based collision model, detailing how to calculate repelling forces between the yarn nodes and rigid surfaces.
  • Concerns are raised about the stability of the current integration method (Euler's method) and the potential benefits of using higher-order methods like Runge-Kutta, despite increased computation time.
  • Participants discuss the stretching of yarn elements and the implications for modeling interactions with rigid surfaces.

Areas of Agreement / Disagreement

Participants express differing views on the effectiveness of various collision handling methods and integration algorithms. There is no consensus on the best approach to resolve the oscillation issues, and multiple competing models are presented.

Contextual Notes

Participants note limitations in their current algorithms, including the need for differentiability in higher-order methods and the challenges of accurately modeling collisions between elastic and rigid bodies.

Who May Find This Useful

This discussion may be useful for researchers and practitioners in computational physics, engineering simulations, and those interested in numerical methods for collision dynamics in elastic materials.

Simon666
Messages
93
Reaction score
0
Hello guys/gals,

I have a finite volume scheme to calculate the movement of a piece of yarn. This involves dividing the yarn into a number of finite volumes, the center of which is called a node. Collision with surfaces is somewhat of a problem. My integration scheme involves the following steps:

  1. Calculate contact : project the position p normally on the surface, p'. Take p = p'
  2. Calculate the tension force F acting on a node
  3. Calculate the surface reaction. Adjust speed v(old) and force F as below, with (n) the normal and (t) the transversal component:

    v(old) = v(old)(t) - Beta*v(old)(n),
    F = F(t) + F(n) + FrictionForce with F(n) = 0 if F(n) is directed into the surface
  4. Calculate the new speed of a node : v(new) = v(old) + F*dt/m;
  5. Calculate the new position of a node : p(new) = p(old) + v(new)*dt
The problem is in some cases this makes the tension force oscillate. Does anyone have an idea on a better method to use for handling collision?
 
Physics news on Phys.org
Have you taken into account damping?
so, for instance,

[tex]\underline v_{new} = (1 - \gamma) \underline v_{old} + \underline F dt/m[/tex]

where [tex]0 < \gamma < 1[/tex] is the damping coefficient (friction or whatever).

This will help prevent irritating oscillations and is generally more physical.

Matt
 
I am already using a fourth order damping in order to prevent oscillations and keep it stable, without collision even occurring.

v(i) = v(i) - Omega*Damping(i)

with

Damping(i) = v(i-2) - 4*v(i-1) + 6*v(i) - 4*v(i+1) + v(i+2)

But I still get oscillations despite of the damping in collision, decreasingthe timestep makes the numerical oscillations smaller but ofcourse makes it slower. That's why I'm wondering whether there isn't a better algorithm to calculate collision.
 
Could you perhaps describe the situation a bit more? I'm having difficulty understanding what is colliding with what and were.

Generally, collisions are quite tricky to handle numerically. Another method is to assume a spring constant [tex]\kappa \gg 1[/tex] between the colliding objects and treat the collision as a spring. If you put in a maximum range for this interaction then they will only 'collide' once they have come within a certain range of each other, but treating it like a spring will mean that if the two objects are hovering around this range you won't have the force changing so dramatically as they go in and out of contact.

Also, you might want to investigate using a better algorithm when integrating the velocity. What you are using can be quite unstable under oscillations, so perhaps using a Runge-Kutta or predictor-corrector method will be better. (for instance, http://www.library.cornell.edu/nr/bookcpdf/c16-1.pdf )

Matt
 
Last edited by a moderator:
The nodes of the elastic yarn are colliding with the supposed completely unelastic metal objects like prewinder, main nozzles etcetera. I mainly get tension oscillations when the yarn is moving over a curved surface, and when the speed of the yarn is larger on the place where it starts moving over the surface than where it leaves the surface. Your suggestion of treating the collision as a spring sounds interesting but could you explain more in detail how this would work?

For the algorithms to calculate the new speed and position I currently use Euler's method as it is quite stable. I have already programmed a Runge-Kutta version of my model but still get tension oscillations in collision. On top of that, the results are not that much more accurate and computation time increases significantly. The reason why higher order methods such as the Runge Kutta method are probably not that much more accurate is that when using a Taylor series of order n, the function in it also needs to be n times differentiable. I don't think the way collision is handled as of now in my program, meets that requirement.
 
Ok, so are you saying that the elements stretch? (that is, the nodes are not at a fixed separation)

Although the metal is not springy, the yarn certainly is, so any interaction between the two can probably be modeled quite well with a spring. Of course, you should try other potentials too. The idea is quite simple. You have a node and it is closer to the metal surface than the threshold distance. You then calculate the repelling force between them
[tex]\underline {F_r} = \kappa ( r_t - |\underline {dr}| ) \underline {\hat{dr}}[/tex]
where [tex]\underline {dr}[/tex] is a vector from the surface to the node, [tex]\underline {\hat{dr}} = \underline {dr} / |\underline {dr}|[/tex] and [tex]r_t[/tex] is the threshold range of interaction. Assuming I have not missed out a minus sign somewhere this ought to give you a repelling force between the node and the surface which will give you a collision.

Another advantage of this method is that you now have a normal force between the yarn and the metal. Thus it is possible to calculate the friction force [tex]\underline {F_f} = - \underline {v_t} \mu |\underline F_r |[/tex] where [tex]\mu[/tex] is the friction coefficient between metal and yarn and [tex]\underline {v_t}[/tex] is the velocity along the surface.

Matt
 
baffledMatt said:
Ok, so are you saying that the elements stretch?
Yes.

What you proposed sounds interesting, I'll try it, thanks.
 

Similar threads

  • · Replies 12 ·
Replies
12
Views
3K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 63 ·
3
Replies
63
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
6K
Replies
8
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 32 ·
2
Replies
32
Views
8K