Effet du maillage

Dans cette partie, nous allons étudier l'effet du maillage sur le temps de calcul d'un cas simple (rupture d'un barrage, avec un lit d'eau en aval). Nous avons effectué une série de calculs pour des maillages de plus en plus dense. Pour assurer la cohérence de nos résultats, nous avons lancé les calculs depuis la même machine, les uns après les autres. L'ensemble des résultats est synthétisé dans le tableau ci-après:

Maillage Nombre de mailles Temps de calcul 1 cœur Temps de calcul 4 coeurs
100 * 24 2 400 3.8s 3.7s
200 * 48 9 600 27s 13s
300 * 72 21 600 1min 37s 35s
400 * 96 38 400 4min 44s 1min 46s
500 * 120 60 000 10min 10s 3min 55s
600 * 144 86 400 - 7min 32s
700 * 168 117 600 - 13min 10s
800 * 192 153 600 - 20min 49s
1000 * 240 240 000 78min 05s 43min 34s

On remarque que le temps de calcul n'est pas lié linéairement au nombre de mailles (ni linéique, ni surfaçique).

On peut tracer la durée des calculs en fonction du nombre de mailles.

 

 

Calcul à un coeur

Pour le calcul à un coeur, on trouve obtient ces graphiques:

On remarque que le temps de calcul est de la forme "puissance": $Tc\,_{1}= A n_x ^\beta$

avec :

  • A un coefficient réel positif (ici  $ A = 1,8 . 10^{-6} s$)
  • $n_x$ le nombre de mailles linéique selon x
  • $\beta \approx 3,14$

$Tc\,_{1}= 1,8 . 10^{-6} n_x ^{3,14}$

Cette loi d'évolution semble correcte (coefficient de corrélation R² = 0,998).

Il est possible de tracer le graphique avec le nombre de mailles total en abscisse, ou en échelle log:

En résumé, pour le calcul simple soeur, le raffinement du maillage est ressenti à la puissance 3 en terme de temps de calcul.

 

 

Calcul quatre coeurs

​De la même façon on peut tracer le temps de calcul $Tc_4$ du calcul à quatre coeurs.

Cette fois, la courbe de tendance s'éloigne des points lorsque $n_x$ augmente. On peut imaginer que cette approximation est due à la façon dont openFoam divise le domaine, et le reconstruit. Plus le maillage est grand et complexe, plus les actions de séparation et de reformation du domaine sont lourdes (actions absentes lors du calcul à un coeur).

On remarque lorsqu'on trace $log(Tc_4)=f(n_x)$ qu'il semble y avoir deux paliers d'évolution:

On va donc tracer une première courbe pour les trois premiers points (100 * 24 à 300 * 72),

puis les six derniers points (400 * 92 à 1000 * 240):

On remarque que les coefficients de corrélations sont bien meilleurs (0,993 et 0.999). Ces deux modèles semblent correspondre aux temps de calculs réels:

  • Pour $n_x \le 300, \: Tc_4 \approx 3,24 . 10^{-4} n_x^2$​

​​

  • Pour $n_x \ge 300, \: Tc_4 \approx 8,29 . 10^{-8} n_x^{3,5}$