Je continue à bosser sur Pixar Physics Simulation Animation Course, en particulier l’article sur des méthodes numériques implicites. La semaine dernière, nous nous sommes introduits aux méthodes implicites du premier ordre. Cette semaine, nous travaillerons plus dur en étudiant des méthodes implicites du second ordre.
Cette leçon ouvrira la porte à la compréhension et à la création de simulations de tissu. Bien entendu, les simulations de tissu (tissés et tricotés, si vous voulez) consistent à nous servir des systèmes masse-ressorts. Contrairement à la simulation du système de particules que l’on a fait il y a quelques semaines, on utilisera un solveur d’Euler implicite du second ordre pour créer une telle simulation !
Passons en revue : l’espace des phases
Une simulation de tissu est juste comme une simulation d’un système de particules. Rappelons que des particules se représent en espace dans une configuration qui s’appelle espace des phases.
Chaque particule se représente dans l’espace par deux vecteurs de coordonnées généralisées (x, v) où x est un vecteur de position et v est un vecteur de vitesse. Le vecteur de l’espace des phases se construit des vecteurs x et y l’un après l’autre, ainsi il aura une taille finale de 2*n éléments (où n est la quantité de dimensions représentées dans notre système).
⚠️ Si vous êtes déjà perdu, il faut voir la discussion sur les particules où j’ai introduit ce sujet. Il faut que vous compreniez ce sujet avant de continuer !
Équations différentielles ordinaires (EDOs) du second ordre
La ressource de Pixar nous dit que :
La plupart des problèmes dynamiques sont écrits dans les termes d’une équation différentielle du second ordre :
où est la dérivée de second ordre de la position x(t). Nous savons déjà que cette valeur est l’accélération. est la dérivée de la position… que l’on connait sous le nom de vitesse.
La résolution d’une équation différentielle du second ordre n’est pas idéale parce qu’elle est coûteuse et compliquée. Nous verrons que nous pouvons éviter ce calcul en approximant le terme du second ordre à l’aide de la série de Taylor dans un processus nommé linéarisation. En introduisant et en définissant la variable , nous pouvons réécrire ces équations au premier ordre :
Simplifions ce système en rappelant que l’étape d’Euler implicite se définit comme suit :
et que :
…on peut introduire des variables et pour enfin avoir une équation pour résoudre une étape d’Euler implicite :
Linéarisation
Comme je l’ai dit, nous pouvons approximer grâce aux séries de Taylor :
💡 On peut faire une approximation d’une fonction réelle avec deux variables en utilisant la série de Taylor comme suit :
Vois cette ressource pour en savoir plus sur la série de Taylor et cette dérivation exacte.
Alors, l’équation devient :
Un aparté : dimensions
Il faut dire que les dimensions de et sont décidées par nous. Dans cet exemple, nous pouvons supposer que notre particule est définie par une position en 3D et une vitesse .
Cette distinction nous permet de mieux comprendre les dimensions de ce calcul. Supposons également dans ce cas que est en 3D. Une ressource que je vous recommande pour créer des simulations de tissus nous dit que est la force dans le système, mais je n’en suis pas si sûr à ce stade parce que je ne l’ai pas encore étudié. En tout cas, nous pouvons supposer que
💡 Grâce au calcul vectoriel, on voit comment calculer la dérivation d’un vecteur en 3D :
La dérivation est appelée la matrice jacobienne. On y reviendra avec plus de détails dans une partie ultérieure
En remplaçant dans l’équation de , nous arrivons au suivant :
La forme linéaire
Nous sommes enfin arrivés au cœur d’une méthode implicite. On voit facilement que se met en chaque côté du signe égal. Il ne suffit pas de résoudre la valeur de la variable en la plaçant d’un seul côté. Il faut donc résoudre un système linéaire en utilisant la form linéaire .
💡 Un système linéaire peut être résolu en utilisant la forme :
où A est la matrice des coefficients, x est le vecteur solution et b est le vecteur constant. Prenons cet exemple avec un système linéaire comme suit :
En utilisant la forme , nous arrivons à :
Après avoir arrangé nos termes dans la forme on arrive à :
où I est la matrice identité ().
L’étape suivante consiste bien sûr à résoudre . Je le ferai dans la prochaine série - une simulation de tissu !
La suite
Je continue à étudier la physique en créant une simulation de tissu !