Vers la simulation numérique d écoulements sanguins Vincent Chabannes Université Joseph Fourier 10 Juin 2010
Collaborators C. Prud homme (UJF/LJK) M. Ismail (UJF/LSP) N. Debit (UCB/ICJ) G. Pena (U. Coimbra) Sponsors UJF, Cluster ISLE/CHPID, U. Coimbra
Sommaire Introdution Modélisation Dynamique des fluides Modèles de structure Intéraction fluide-structure Méthodes Numériques Méthode d ordre élevé Méthode de la frontière élargie Environnement informatique Langage pour les EDP Plateforme logicielle et architecture matérielle Accélération par GPU Perspectives
Introdution Modélisation Dynamique des fluides Modèles de structure Intéraction fluide-structure Méthodes Numériques Méthode d ordre élevé Méthode de la frontière élargie Environnement informatique Langage pour les EDP Plateforme logicielle et architecture matérielle Accélération par GPU Perspectives
Motivations Figure: Photo O. K. Baskurt, de http://www.rheology.org Rhéologie des écoulements sanguins Intéraction plasma/paroi artérielle Simulation d un grand nombre de cellules sanguines Organisation spatio-temporelle des entités Transport de masse
Objectifs Simulation 3D : Circulation du sang Déformation des artères Déplacement, contact et déformation des globules rouges Méthodes Spectrales : Espace Temps Géométrie Calcul haute performance : Stratégies de décomposition de domaine Architectures parallèles(cpu, GPU) Intégration au langage Feel++
Introdution Modélisation Dynamique des fluides Modèles de structure Intéraction fluide-structure Méthodes Numériques Méthode d ordre élevé Méthode de la frontière élargie Environnement informatique Langage pour les EDP Plateforme logicielle et architecture matérielle Accélération par GPU Perspectives
Dynamique des fluides Fluide newtonien Equation de Navier-Stokes Fluide non newtonien La viscosité µ dépend du taux de cisaillement γ : µ = F ( γ) Modèles : rhéofluidifiant, à seuil, rhéoépaississant,... Modéles de rhéologie du sang Grandes artères : fluide newtonien Petites artères : fluide rhéofluidifiant
Dynamique des fluides dans un domaine fixe Fluide newtonien incompressible ρ v t + ρ(v )v τ + p = f, in Ω (0, T ) (1) v = 0, in Ω (0, T ) (2) B(v, p) = g, on Ω [0, T ] (3)
Ω σ t0 Ω σ t0 Dynamique des fluides dans un domaine mobile Ω σ t Ω σ t Ω D t Ωt Ω D t Ω D t Ωt Ω D t Ω σ t Ω σ t Lt At u Ω D t0 Ωt0 Ω D t0 carte ALE ( Arbitrary Lagrangian-Eulerian) : Vitesse du domaine : A t : Ω t0 Ω t Y x w(x, t) = A t(y) t Modification des équations de la dynamique(qdm) v t + [(v w) ]v + p τ = f, in Ω t Y Y
Dynamique des fluides dans un domaine mobile Application Σ t Γ w t Entrée parabolique S 1 Sortie sans contrainte Déplacements imposés u Ω t S 2 Vidéo Navier-Stokes ALE
Modèles de structure Modèles élastiques Equation de la dynamique des solides : u : le deplacement σ s : tenseur des contraintes d 2 u dt 2 1 ρ 0 σ s = f (4) Elasticité linéaire(loi de Hooke) σ s = λ tr ( ) ɛ u I + 2µɛu ɛ u = 1 2 ( u ) + ( u) T λ et µ : coefficients de Lamé
Modèles de structure Hyper-élasticité σ s = F S F = I + u : gradient des déformations S : tenseur de Piola-Kirchhoff 2 caractérisé par une loi de comportement ψ(e) ou ψ(c) E tenseur de Green-Lagrange C tenseur de Cauchy-Green Saint Venant-Kirchhoff : ψ (E) = λ 2 (tre)2 + µ tr (E) 2 Mooney-Rivlin (I i invariants de C) : Autres modèles visco-élastique plasto-élastique ψ (I 1, I 2, I 3 ) = C 1 (I 1 3) + C 2 (I 2 3)
Intéraction fluide-structure Couplage des modèles Dynamique des fluides sur Ω t v = v in sur S 1 σ f = 0 sur S 2 S 1 Σ t Γ w t Dynamique des structures sur Σ t u = 0 sur S 1 σ s = 0 sur S 2 Conditions de couplage : u Ω t S 2 v = u sur Γ w t σ s = σ f sur Γ w t Méthodes de couplage Partitionnées Monolithiques
Méthode partitionnée de couplage Solveur implicite Prédiction Déplacement du maillage Solveur Fluide Solveur Structure Relaxation (Aitken) Test de convergence
100 average number of iterations 80 60 40 20 44.79 BDF1 BDF2 BDF3 BDF4 32.44 27.35 24.38 62.17 46.5 39.28 34.55 55.43 47.36 41.93 61.63 53.13 46.77 0 BDF1 BDF2 BDF3 BDF4 scheme for the fluid t = 0ms Figure: Pressure pulse propagating through the pipe. Fluid discretized with BDF 3 and P 4 P 2 elements, h = 0.2, t = 10 6, no stabilization and tol = 10 6. For the structure we used BDF 3 and P 1 elements.
100 average number of iterations 80 60 40 20 44.79 BDF1 BDF2 BDF3 BDF4 32.44 27.35 24.38 62.17 46.5 39.28 34.55 55.43 47.36 41.93 61.63 53.13 46.77 0 BDF1 BDF2 BDF3 BDF4 scheme for the fluid t = 2ms Figure: Pressure pulse propagating through the pipe. Fluid discretized with BDF 3 and P 4 P 2 elements, h = 0.2, t = 10 6, no stabilization and tol = 10 6. For the structure we used BDF 3 and P 1 elements.
100 average number of iterations 80 60 40 20 44.79 BDF1 BDF2 BDF3 BDF4 32.44 27.35 24.38 62.17 46.5 39.28 34.55 55.43 47.36 41.93 61.63 53.13 46.77 0 BDF1 BDF2 BDF3 BDF4 scheme for the fluid t = 4ms Figure: Pressure pulse propagating through the pipe. Fluid discretized with BDF 3 and P 4 P 2 elements, h = 0.2, t = 10 6, no stabilization and tol = 10 6. For the structure we used BDF 3 and P 1 elements.
100 average number of iterations 80 60 40 20 44.79 BDF1 BDF2 BDF3 BDF4 32.44 27.35 24.38 62.17 46.5 39.28 34.55 55.43 47.36 41.93 61.63 53.13 46.77 0 BDF1 BDF2 BDF3 BDF4 scheme for the fluid t = 6ms Figure: Pressure pulse propagating through the pipe. Fluid discretized with BDF 3 and P 4 P 2 elements, h = 0.2, t = 10 6, no stabilization and tol = 10 6. For the structure we used BDF 3 and P 1 elements.
100 average number of iterations 80 60 40 20 44.79 BDF1 BDF2 BDF3 BDF4 32.44 27.35 24.38 62.17 46.5 39.28 34.55 55.43 47.36 41.93 61.63 53.13 46.77 0 BDF1 BDF2 BDF3 BDF4 scheme for the fluid t = 8ms Figure: Pressure pulse propagating through the pipe. Fluid discretized with BDF 3 and P 4 P 2 elements, h = 0.2, t = 10 6, no stabilization and tol = 10 6. For the structure we used BDF 3 and P 1 elements.
100 average number of iterations 80 60 40 20 44.79 BDF1 BDF2 BDF3 BDF4 32.44 27.35 24.38 62.17 46.5 39.28 34.55 55.43 47.36 41.93 61.63 53.13 46.77 0 BDF1 BDF2 BDF3 BDF4 scheme for the fluid t = 10ms Figure: Pressure pulse propagating through the pipe. Fluid discretized with BDF 3 and P 4 P 2 elements, h = 0.2, t = 10 6, no stabilization and tol = 10 6. For the structure we used BDF 3 and P 1 elements.
Introdution Modélisation Dynamique des fluides Modèles de structure Intéraction fluide-structure Méthodes Numériques Méthode d ordre élevé Méthode de la frontière élargie Environnement informatique Langage pour les EDP Plateforme logicielle et architecture matérielle Accélération par GPU Perspectives
Méthodes d ordre élevé (h/p) Bases polynomiales Méthodes des élements spectraux (a) Polynômes de Dubiner (L2-Orthorgonaux) de degré 5 sur des triangles (b) Polynômes de Lagrange de degré 4 sur des quadrangles Espace Temps Géométrie Méthodes h/p Compromis entre h et p Compromis entre précision et performances Feel++(Life) développée au LJK Librairie C++ pour les méthodes de Galerkin généralisée (h/p) en {1,2,3}D
Interpolation d ordre élevé Motivations Interpolation entre differents maillages ou espaces de fonction Transfert à l interface de maillages non conformes Calcul des différents opérateurs ( id,grad,...) Applications Couplage multiphysique (FSI) Méthodes des frontières élargies (FBM) Décomposition de domaine
p-type convergence. H 1 h-type convergence. L 2 h-type convergence. H 1 p-type convergence. H 1 Interpolation d ordre élevé Projection H 1 Soit u : X h R et f une fonction analytique trouver u X h t.q. : (u, v) H 1 = (f, v) H 1, v X h Validation numérique 10 0 Log-Log 10 0 SemiLogY 10 1 10 1 p-type convergence. L 2 10 2 10 2 10 3 10 3 10 4 10 4 10 5 10 5 10 6 1.91 10 6 10 7 10 7 10 8 10 8 10 9 2.92 10 9 10 10 10 10 5.83 10 11 h-type convergence. L 2 10 12 h-type convergence. H 1 10 11 6.46 p-type convergence. L 2 10 12 10 13 1 10 102 103 104 105 Ndof 10 13 0 1000 2000 3000 4000 5000 Ndof
Etapes de construction de la carte ALE d ordre élevé Ω σ 0 Ω σ t Ω D 0 Ω0 Ω D 0 Ω D t Ωt Ω D t Ω σ 0 Ω σ t
Etapes de construction de la carte ALE d ordre élevé 1. génération d un maillage droit
Etapes de construction de la carte ALE d ordre élevé 1. génération d un maillage droit 2. A partir d une description des frontières courbes, on crée une extension harmonique P 1, noté A 1 h
Etapes de construction de la carte ALE d ordre élevé 1. génération d un maillage droit 2. A partir d une description des frontières courbes, on crée une extension harmonique P 1, noté A 1 h 3. On projette A 1 h dans un espace P N, noté A N h
Etapes de construction de la carte ALE d ordre élevé 1. génération d un maillage droit 2. A partir d une description des frontières courbes, on crée une extension harmonique P 1, noté A 1 h 3. On projette A 1 h dans un espace P N, noté A N h 4. On change la valeur des dofs de A N h pour ajuster la carte sur les frontières courbes Utilisation de la transformation de Gordon-Hall Déplacement des dofs de l arête et de l intérieur de l élément en contact avec la frontière
Méthode de la frontière élargie 1 2 1 4 γ γ 1 4 1 2 Tests de la convergence optimale de la méthode Solution analyique non polynomiale Calcul de l erreur H 1 1 h = 0.1 H1 errors (log scale) 0,01 0,0001 P3 FEM Slope ~ 3.11 P4 FEM Slope ~ 3.94 P5 FEM Slope ~ 5.05 P6 FEM Slope ~ 6.05 P7 FEM Slope ~ 7.32 P8 FEM Slope ~ 9.49 H1 error (log scale) 1 10 0 1 10-1 1 10-2 1 10-3 1e-06 0,01 0,1 h (log scale) 1 10-4 0 2 4 6 8 p
Introdution Modélisation Dynamique des fluides Modèles de structure Intéraction fluide-structure Méthodes Numériques Méthode d ordre élevé Méthode de la frontière élargie Environnement informatique Langage pour les EDP Plateforme logicielle et architecture matérielle Accélération par GPU Perspectives
Langage pour les EDP Programmation générative : permet de dissocier la complexité de haut niveau et de faible niveau. Numerical Methods Best expressivity using high level language Physical Models Numerical Methods Best expressivity using high level language Physical Models Express Complexity of Scientific Computing Software Domain Complexity Specific of Scientific Embedded Computing Language Software for Galerkin Methods Generate Computer Science Best performance using low level language Algebraic Methods Computer Science Best performance using low level language Algebraic Methods
Example de DSEL : Feel++ Code pour Navier-Stokes αv w + 2µD(v) : D(w) + β v w w p + v q Ω auto def = 0.5 ( grad ( v ) + t r a n s ( grad ( v ) ) ) ; auto deft = 0.5 ( gradt ( u ) + trans ( gradt ( u ) ) ) ; form2 ( Xh, Xh, M) = i n t e g r a t e ( elements ( Xh >mesh ( ) ), IM, alpha t r a n s ( i d t ( u )) i d ( v ) + 2.0 nu t r a c e ( t r a n s ( d e f t ) def ) + t r a n s ( gradt ( u) i d v ( beta )) i d ( v ) d i v ( v ) i d t ( p ) + d i v t ( u) i d ( q ) ) ; Interpolation : integration transparente dans le language Γ s 1 2 ( u + ( u) T ) N auto Xh s p a c e _ f l u i d : : New( mesh_fluid ) ; auto U( Xh, " u " ) ; integrate ( markedfaces ( mesh_struct, " interface " ), 0.5 ( gradv (U)+ t r a n s ( gradv (U) ) ) N( ) ). evaluate ( ) ;
Plateforme logicielle et architecture matérielle Feel++ Plateforme de travail collaboratif : LJK Forge Plateforme de tests : CDash Tests informatiques Tests mathématiques Chaine logicielle : gmsh, petsc, trilinos, boost, paraview, openturns... Disponible sur Debian Science (Bientôt Ubuntu) Exploitation des architectures CPU Parallélisation de type MPI Portage sur des grilles de calcul GPU Massivement parallèle Grande puissance de calcul vectoriel
Accélération par GPU Problème Trouver u Xh N t.q. u v + uv = fv, v Xh N (5) Ω Ω Ω où Xh N de degré N est un espace de fonctions polynomiales par morceau u = N dof i=1 u i Φ i Après discrétisation, (5) peut d écrire sous la forme d un sytème linéaire A x = b (6) Objectif Accélérer le calcul de la matrice A
Accélération par GPU Assemblage Global Construction à l aide des matrices élémentaires de masse et de raideur Assemblage local Matrice dense de taille N localdof Construction par la technique de l élément de référence Temps de calcul liée à la complexité des équations Indépendance des calculs de chaque composante Stratégie Répartition du calcul de chaque composante sur un processeur du GPU
Accélération par GPU ŷ Transformation géométrique ˆx 3 ˆx 6 ˆx 1 ˆx 5 ˆK ˆx 4 ˆx2 ϕ K (ˆx) ϕ 1 K (x) ˆx y x6 x 1 x 3 K x 4 x 5 x2 x Soit L i la base de Lagrange t.q. L i (ˆx j ) = δ ij, i, j [ 1, Ng K ]] Ng K x = ϕ K (ˆx) = x i L i (ˆx) Transformation linéaire ˆx = ϕ 1 K (x) implique la résolution d un système linéaire Transformations d ordre élevé ˆx = ϕ 1 K (x) implique la résolution d un système non linéaire Définition sur l élément de référence i=1 u = N dof i=1 u i Φ i = K N localdof i=1 u i ˆΦi ϕ 1 K
Accélération par GPU Matrice de masse élémentaire N q M(i, j) = Φ i (x)φ j (x)dx = w q ˆΦi (ˆx q ) ˆΦ j (ˆx q ) J K q=1 Matrice de raideur élémentaire M(i, j) = Ñ q q=1 ( )] [ ( )] w q [( ˆx ϕ K ) T ˆx ˆφi ( ˆx q) ( ˆx ϕ K ) T ˆx ˆφj ( ˆx q) J
Accélération par GPU Mémoires des GPU dimgridy y Bxy T 00 T 01 T 02 T 03 T 04 T 10 T 11 T 12 T 13 T 14 T 20 T 21 T 22 T 23 T 24 T 30 T 31 T 32 T 33 T 34 T 40 T 41 T 42 T 43 T 44 Mémoire globale : accessible par tous les proc du GPU accessible par l hote (CPU) dimblocy dimblocx x Mémoire partagée : défini sur chaque bloc accès très rapide dimgridx Topologies des processus La taille des blocs dépend de l architecture matérielle et du programme parallele => Trouver le choix optimal Communications CPU/GPU Très couteux : à minimiser Capacité limité : envoi par paquets
Influence du degré d interpolation Secondes 10 3 10 2 10 1 10 0 10-1 10-2 CPU GPU Speed Up(CPU/GPU) 1 2 3 4 5 6 7 8 9 10 N Figure: d=2, Nel=10000, TailleBloc=6 N CPU GPU Speed Up 1 0.01 0.24 0.0416667 2 0.05 0.41 0.121951 3 0.27 0.64 0.421875 4 1.07 1.04 1.02885 5 3.16 1.58 2 6 7.85 2.18 3.60092 7 17.68 3.15 5.6127 8 35.95 4.34 8.28341 9 66.53 6.31 10.5436 10 118.71 9.37 12.6692 10 3 CPU GPU Speed Up(CPU/GPU) 10 2 Secondes 10 1 10 0 10-1 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 N N CPU GPU Speed Up 2 0.26 0.75 0.346667 3 2.44 1.62 1.50617 4 16.04 3.79 4.23219 5 84.97 9.57 8.87879 6 371.06 28.52 13.0105 Figure: d=3, Nel=10000, TailleBloc=6
Influence de la taille des blocs Secondes 10 1 10 0 10-1 0 2 4 6 8 10 12 14 16 18 N CPU GPU Speed Up(CPU/GPU) Taille CPU GPU Speed Up 2 3.59 1.22 2.94262 3 3.59 0.54 6.64815 4 3.59 0.46 7.80435 5 3.59 0.51 7.03922 6 3.59 0.54 6.6481 8 3.59 0.54 6.6481 10 3.59 0.57 6.2982 12 3.59 0.61 5.88525 14 3.59 0.71 5.05634 16 3.59 0.74 4.85135 18 3.59 0.84 4.27381 Figure: d=2, N=8, Nel=1000 Secondes 10 2 10 1 10 0 10-1 0 2 4 6 8 10 12 14 16 18 N CPU GPU Speed Up(CPU/GPU) Taille CPU GPU Speed Up 2 7.45 2.26 3.2964 3 7.46 1.24 6.01613 4 7.43 0.72 10.3194 5 7.44 0.93 8.0 6 7.42 0.66 11.2424 7 7.44 0.71 10.4789 8 7.4 0.71 10.4225 10 7.52 0.74 10.1622 12 7.44 0.76 9.7894 14 7.44 0.85 8.75294 16 7.43 0.92 8.07609 18 7.43 0.94 7.90426 Figure: d=3, N=6, Nel=200
Influence du nombre d élément Secondes 10 2 CPU GPU Speed Up(CPU/GPU) 10 1 10 0 10-1 10-2 10 1 10 2 10 3 10 4 10 5 Nel Nel CPU GPU Speed Up 10 0.04 0 inf 100 0.36 0.08 4.5 200 0.72 0.14 5.14286 500 1.79 0.36 4.97222 1000 3.57 0.73 4.89041 2000 7.13 1.46 4.88356 5000 17.9 3.65 4.90411 7500 26.86 5.48 4.90146 10000 35.72 7.3 4.89315 15000 53.57 10.95 4.89224 Figure: d=2, N=8 Secondes 10 3 10 2 10 1 10 0 CPU GPU Speed Up(CPU/GPU) Nel CPU GPU Speed Up 10 4.29 0.48 8.9375 100 42.33 4.93 8.58621 200 85 9.88 8.60324 500 211.62 24.67 8.57803 1000 424.52 49.38 8.597 2000 855.91 98.8 8.66306 10-1 10 1 10 2 10 3 10 4 Nel Figure: d=3, N=8
Accélération par GPU FBM GPU 0 GPU 1 CPU 1 GPU 2 GPU 3 GPU 4 GPU 5
Introdution Modélisation Dynamique des fluides Modèles de structure Intéraction fluide-structure Méthodes Numériques Méthode d ordre élevé Méthode de la frontière élargie Environnement informatique Langage pour les EDP Plateforme logicielle et architecture matérielle Accélération par GPU Perspectives
Perspectives Prochaines étapes Validation de la FBM pour des géométries d ordre élevé Fluide-Structure 3D Nouvelle méthode pour la construction de la carte ALE Parallélisation Recherche de collaborations Modèles Données Benchmarks