Application multiphysique et couplage fort

La résolution de problèmes multiphysiques par couplage faible tire son origine de l’usage combiné de codes disjoints résolvant par exemple chacun un problème physique dont les entrées proviennent elles-mêmes de la sortie de l’autre code. C’est évidemment itératif. Les codes peuvent être utilisés de la sorte en boîte noire par un pilote contrôlant les fichiers d’entrées-sorties. Bien sûr, l’ouverture des codes autorisera une plus grande finesse des transferts d’information.

A l’extrême, on peut rechercher le couplage fort qui résoudra à chaque itération en une passe les inconnues issues respectivement des deux codes.

Cela signifie qu’il faut construire un système linéaire plus grand mêlant les deux (ou plus) variables inconnues. Comment alors assembler dans le super-vecteur (second membre) et la super-matrice jacobienne les vecteurs et matrices élémentaires des deux équations couplées?

Un modèle multiphysique ne cesse pas d’être mathématique

Naupacte emploie sa représentation tensorielle unique pour la construction d’un tel système couplé. On y place des blocs diagonaux, ou croisés, ainsi que des coefficients isolés venant des contraintes de type valeur ou relation imposée à traiter par multiplicateurs de Lagrange (Navpactos fournit des fonctions permettant de ne pas avoir à se soucier de leur numérotation toujours délicate). Empiler les équations n’ajoute donc pas de complexité structurelle.

Où se cachent les physiques? Eh bien dans les formules mathématiques qui les modélisent et qui vont se retrouver dans la construction du vecteur résidu et de la matrice notamment. C’est du moins ainsi qu’elles apparaissent à ce stade de l’algorithme consistant à construire le système linéaire. Navpactos est avant tout mathématique, algébrique précisément. C’est là le fondement des calculs et le lieu commun des modèles physiques.

Vous connaissez la physique? vous l’exprimez sous forme de modèle que Navpactos calcule.

L’avantage de la représentation formelle

L’objet utilisé pour définir la matrice ou le second membre dispose alors de beaucoup d’informations avant son calcul.

  • La symétrie éventuelle de la matrice est déduite (sauf cas spécial comme la symétrie issue du potentiel dont dérive la force de pression interne à un volume, car la symétrie n’est obtenue que sur l’assemblage total et non sur les matrices élémentaires!).
  • La construction de la matrice est optimisée en repérant ses motifs communs.
  • La renumérotation automatique des équations peut s’envisager pour obtenir des systèmes triangulaires quand ils se présentent (couplage fort mais dépendance unilatérale se résolvant à un couplage faible avec le bon ordre de résolution entre les inconnues).
  • Si la matrice est le jacobien d’un vecteur, elle peut s’obtenir par dérivation automatique… Il devient inutile de la définir manuellement!

On voit là une extension de l’usage des tenseurs dans Navpactos. Les formules tensorielles ne servent pas qu’à calculer la valeur du tenseur mais à construire un certain objet, ici la matrice creuse.

Au final, la quintessence du savoir faire de Naupacte en calcul formel s’exprime parfaitement dans la construction d’une matrice creuse issue de la méthode des éléments finis, quelles que soient les équations.