J'essaie de simuler un objet corde. La formulation que je comprends est un ensemble de particules, reliées par des ressorts. Ces ressorts ont de très grandes valeurs k, de sorte que la ligne se déforme, mais s'étire très peu. J'ai conclu que résoudre cela en fonction du temps n'est pas possible sous forme fermée car une corde est une généralisation d'un pendule (qui n'est pas sous forme fermée).
Se contenter de solutions approximatives, alors. J'ai besoin d'un algorithme qui évolue bien. Des exemples que j'ai vus utilisent l'intégration eulérienne explicite ou implicite pour déplacer les particules. Cela ne change pas d'échelle.
Pour voir cela, considérons une corde à n nœuds. Appliquez une force importante à une extrémité. Parce que la corde ne doit pas s'étirer beaucoup, l'accélération à l'autre extrémité doit être immédiate.
Cependant, avec l'intégration eulérienne, pour obtenir une force à l'autre extrémité, il faut n étapes. Je remarque une décroissance exponentielle: si le premier nœud accélère une certaine quantité, alors les nœuds adjacents accélèrent moins (s'ils accélèrent au même rythme, alors l'algorithme n'est pas stable). Par conséquent, les nœuds adjacents à ce nœud accélèrent encore plus lentement!
Ainsi, à n nœuds de distance, l'accélération est presque négligeable. Cela conduit à une corde qui s'étire considérablement. Si vous voulez seulement doubler la résolution de la simulation, vous devez soudainement prendre des pas de temps qui sont des dizaines ou des centaines de fois plus petits pour obtenir un comportement similaire.
Je recherche une méthode simple qui résout ce problème - c'est-à-dire que des simulations de résolution plus élevée convergent vers la solution avec seulement un calcul supplémentaire de temps polynomial. Une bibliothèque complète de techniques de matrice et d'algèbre linéaire est disponible. Ma connaissance de la mécanique classique est très bonne et je connais quelques analyses numériques.