UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

72

Transcript of UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Page 1: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

UNIVERSIT�E DE PAU ET DES PAYS DE

L'ADOUR

ANN�EE UNIVERSITAIRE 2016/2017

RAPPORT DE STAGE DU SECOND SEMESTRE DE M2DU MASTER MATHEMATIQUES, MODELISATION ET SIMULATION (M.M.S.)

Lieu du stage :

Universit�e Paris-Diderot Paris 7U.F.R. Physique

Laboratoire Mati�ere et Syst�emes Complexes (M.S.C.)Batiment Condorcet

10, rue Alice Domon et L�eonie Duquet75013 PARIS

Intitul�e du sujet du stage :

Mod�elisation de la croissance spiral�ee d'une cellule �a paroi

Tuteurs de stage :

Etienne COUTURIER, CR2 CNRS, U.F.R. Physique, Universit�e Paris-Diderot Paris 7Julien DERR, Ma�tre de conf�erences, U.F.R. Physique, Universit�e Paris-Diderot Paris 7

�El�eve stagiaire et auteur du rapport : Miguel SARRAILH

1

Page 2: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

SOMMAIRE

1 Biologie de l'algue �etudi�ee ..................................................................p.4

2 Physique d'une cellule �a paroi ............................................................p.7

3 Mod�elisation num�erique de la cellule �a paroi .....................................p.20

4 Simulation num�erique du ph�enom�ene d'hyper�elasticit�e ....................p.29

5 In uence des �bres attach�ees �a la paroi primaire de la cellule

souche lors de sa turgescence ............................................................p.44

6 Calcul de la fonction de surcharge �dev

. ............................................p.46

7 Conclusion .......................................................................................p.49

8 Bibliographie ..................................................................................p.50

9 ANNEXES .......................................................................................p.51

2

Page 3: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Figure 1: Laboratoire M.S.C., U.F.R. Physique, Universit�e Paris-Diderot Paris 7

INTRODUCTION

Durant une p�eriode conventionnelle de quatre mois, allant du 07 mars au 07 juillet 2017, j'ai e�ectu�e monstage de M2 Math�ematiques, Mod�elisation et Simulation (M.M.S.) �a Paris, dans le 13�eme arrondissement, ausein d'un laboratoire de recherche en Physique situ�e au huiti�eme et dernier �etage du batiment Condorcet situ�e10, rue Alice Domon et L�eonie Duquet :

le laboratoire Mati�ere et Syst�emes Complexes (M.S.C.)

Ce laboratoire est compos�e de 190 personnes (permanentes) environ et fait partie int�egrante de l'U.F.R.Physique de l'Universit�e Paris-Diderot Paris 7, situ�ee dans le 13�eme arrondissement de Paris �egalement. Il sesitue notamment �a quelques pas seulement de l'extraordinaire Biblioth�eque Nationale de France (B.N.F.), projetr�ealis�e �a l'initiative de Fran�cois Mitterrand au terme de son second mandat pr�esidentiel et de sa vie (1994) .

Le batiment Condorcet, lieu principal de mon stage donc, abrite �egalement d'autres laboratoires de rechercheen Physique : m�et�eorologie, cosmologie, physique quantique (M.P.Q.) ou bien physique statistique avec le Laboratoire de Physique Statistique (L.P.S.) de l'ENS rue d'Ulm.

Les di��erentes unit�es de recherche attach�ees au laboratoire M.S.C. s'occupent principalement de probl�emes inh�erents �a la physique de la mati�ere molle ( uides complexes), ou bien de ceux plutot li�es �a la physiquenon-lin�eaire avec notamment l'�etude particuli�erement pr�esente des syst�emes dynamiques hors �equilibre : mor-phog�en�ese des plantes, embryog�en�ese, m�ecanique des tissus cellulaires, morphog�en�ese des dunes , chant desdunes et phyllotaxie (sp�ecialit�es, entre autres, du physicien St�ephane DOUADY, directeur de recherches auCNRS au sein du laboratoire M.S.C. depuis sa fondation en 2005), turbulence d'ondes, dynamique de gon ementdu squelette d'une mousse, dynamique d'impr�egnation d'un mat�eriau poreux par exemples .

Un des objectifs poursuivis par le groupe de recherche li�e �a la Dynamique des Syst�emes Hors �Equilibre(groupe DSHE), dirig�e par Mr. �Eric FALCON et au sein duquel s'inscrivent mes deux tuteurs de stage; queje souhaite remercier tout d'abord pour la sympathie, l'encadrement, le soutien et l'aide qu'ils m'ont apport�esdurant ces quatre mois :

Mr. Etienne COUTURIER (CR2 CNRS)Mr. Julien DERR (Ma�tre de conf�erences);

3

Page 4: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

est ainsi de pouvoir comprendre et de d�eterminer des lois de comportement m�ecanique communes �a di��erentessituations exp�erimentales, comme celles �enum�er�ees plus haut, faisant appel �a des domaines aussi vari�es que labiologie, la g�eophysique, l' acoustique, la chimie, la physique statistique ou bien la m�edecine.

Le stage propos�e porte sur la simulation num�erique de la croissance d'une cellule v�eg�etale (Modeling ofspiral growth) et s'inscrit dans un projet de recherche en biophysique sur la mod�elisation num�erique et l'�etudede la croissance d'un tissu v�eg�etal tout entier pour un certain type d'algue verte, poussant majoritairement enmilieux d'eaux douces mar�ecageuses, et poss�edant la propri�et�e importante d'etre la plus proche , g�en�etiquementparlant, des plantes vertes terrestres, lesquelles pourraient bien etre, selon certaines �etudes phylog�en�etiques encours, ses descendantes directes (apr�es les mousses, �egalement �etudi�ees au sein du laboratoire M.S.C.) :

ce sont les algues chara, de la famille des Characeae (cf Figure 2 , p.5).

1. Biologie de l'algue �etudi�ee

Voici quelques caract�eristiques biologiques de l'algue Chara [Wikip�edia] :

"Chara et charac�ees sont des plantes multicellulaires et branchues, caract�eris�ees par des cellules g�eantes(macroscopiques, d'une longueur de 1 �a 2 cm pour chaque cellule de la tige principale). Ces cellules sontg�en�eralement cortiqu�ees et chacune est constitu�ee d'une grande vacuole centrale, d'un endoplasme et du cy-toplasme qui contient un ou plusieurs noyau(x) et qui est anim�e d'un constant mouvement, dit de "cyclose".Cette cyclose est caract�eris�ee par une vitesse de ux au moins huit fois plus rapide (jusqu'�a 70 �m/s) que celleobserv�ee chez d'autres plantes, telle que l'�elod�ee. Ceci fait des charac�ees une int�eressante plante de laboratoirepour l'�etude du ph�enom�ene de cyclose.[...] Leur thalle [tige centrale] peut atteindre 120 cm de long. Elles n'ontpas de racines, mais se �xent dans le substrat (sable, s�ediment vaseux, gravier..) par des rhizo��des."

Apr�es leur tr�es proche a�nit�e g�en�etique avec les plantes vertes terrestres, l'int�eret essentiel de ces alguesvertes d'eaux douces est que l'"on observe facilement et nettement au microscope - �a l'int�erieur des cellulesg�eantes - le ph�enom�ene de cyclose (ou " streaming cytoplasmique "). On n'a jamais observ�e de cyclose plusrapide chez d'autres plantes."

Ainsi le choix de l'�etude de cette plante est justi��e aussi bien par ses propri�et�es g�en�etiques que par lapossibilit�e qu'elle o�re d'observer au microscope en temps r�eel le ph�enom�ene dit de cyclose en biologie.

L'aspect �etudi�e du point de vue de la biophysique, et auquel nous nous sommes int�eress�es du point devue de la mod�elisation/simulation num�erique durant ce stage, est le caract�ere anisotrope de la croissance d'unecellule lorsque sa vacuole (qui occupe 90 pour cent de l'espace cellulaire) se remplit d'eau et gon e.

Le ph�enom�ene de croissance spiral�ee ou croissance h�elico��dale observ�e chez les algues Chara est du �a lapr�esence d'une structure en treillis de �bres pectocellulosiques autour de la paroi primaire de chaque cellulesv�eg�etales ou cellules-souches, toutes issues d'un m�erist�eme c'est-�a-dire d'un meme centre de division cellulaire,et lesquelles, amoncel�ees les unes sur les autres, constitueront le tissu v�eg�etal de l'algue verte.

La croissance de la cellule, que l'on assimilera g�eom�etriquement �a un cylindre poss�edant une certaine�epaisseur au sein de laquelle sont dispos�ees ces �bres dont on supposera qu'elles forment un angle nul avecle plan transversal de ce cylindre, provient initialement d'une pression de pouss�ee interne en son sein appel�eepression de turgescence.

La pression de turgescence d'une cellule �a paroi s'explique par le ph�enom�ene de turgescence des cellules,durant lequel la vacuole de la cellule se remplit d'eau, grossit et ses membranes semi-perm�eables (ne laissantpasser que l'eau dans le cas de cellules v�eg�etales) se tendent, accordant de fait un certain accroissement ainsiqu'une certaine rigidit�e �a di��erentes parties de la plante telles que la tige et les feuilles notamment.

Les �bres contenues dans la coque cylindrique sont reli�ees entre elles par des mol�ecules appel�ees h�emicellulosesqui conf�erent une structure semi cristalline au treillis de micro �bres pecto-cellulosiques ainsi form�e.

Pour la mod�elisation physique, les �bres seront suppos�ees continues, c'est-�a-dire sans cassures le long du

4

Page 5: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Figure 2: Algue verte Chara , laboratoire M.S.C. , juillet 2017

p�erim�etre du cylindre, et dispos�ees, horizontalement donc, vers une meme direction en s�erie dans l'�epaisseur dela coque du cylindre.

Les �bres sont su�samment r�esistantes pour demeurer "incassables" au cours de la turgescence de lacellule, ce qui n'est pas le cas en revanche des mol�ecules jouant le role d' "attache" entre elles (h�emicelluloses).

De ce fait, le parall�elisme initial entre les micro �bres contenues la coque cylindrique ne sera pas constant,et c'est cela qui sera responsable de l'anisotropie observ�ee lors de la turgescence d'une cellule v�eg�etale Chara.

Les memes propri�et�es d'anisotropie et de croissance spiral�ee peuvent etre observ�ees chez d'autres esp�ecesv�eg�etales comme par exemple chez les champignons Phycomyces au niveau de leur sporangium (cf Figure 3).

5

Page 6: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Figure 3: un champignon Phycomyces, taille r�eelle : 10 - 15 cm environ (Source : Wikipedia)

6

Page 7: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

2. Physique d'une cellule �a paroi

L'objectif principal de mon stage �etait de simuler num�eriquement en langage Python/Fenics la croissance dela paroi d'une cellule v�eg�etale Chara en se basant sur le mod�ele physique et les donn�ees num�eriques utilis�es dansun article r�ecent (2012) r�edig�e et co-�ecrit par trois sp�ecialistes en hyper�elasticit�e non lin�eaire et en plasticit�epour des probl�emes de biophysique tels que le notre : il s'agit de R.Huang, AA. Becker, et I.A. Jones, qui ontpubli�e ensemble dans le Journal of the Mechanics and Physics of Solids 60 (2012) l'article auquel nous nousr�ef�erons de mani�ere tacite pour chacun des r�esultats obtenus dans nos simulations num�eriques :

Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law

Les auteurs de cet article proposent un mod�ele hyper�elastique et viscoplastique ainsi qu'un sch�ema num�eriqueFEM (Finite Elements Metods) permettant de simuler la croissance d'une cellule �a paroi pectocellulosique d'unealgue Chara tout en tenant compte de la pr�esence de �bres .

Les r�esultats num�eriques qu'ils donnent �a la �n de l'article sont obtenus en utilisant le logiciel ABAQUSpuis sont compar�es avec les donn�ees exp�erimentales.

Le dessein poursuivi tout au long de mon stage �etait donc de programmer en langage Python pour Fenicschacune des �etapes (assez nombreuses) permettant d'acc�eder au sch�ema semi-implicite �nal puis de comparer num�eriquement �a chaque fois nos r�esultats avec ceux obtenus par les auteurs de l'article.

Mon travail de programmation durant ce stage s'est d�eroul�e essentiellement en deux �etapes :

� Dans un premier temps on simule num�eriquement le seul ph�enom�ene d'hyper�elasticit�e non-lin�eaire sur lacellule sans tenir compte des �bres, en testant notamment di��erentes m�ethodes num�eriques (m�ethodesPETSc) sur le logiciel Fenics avec di��erents maillages tridimensionnels grace au logiciel FreeFem++ .

� Puis on ajoute dans les formulations variationnelles du premier code la contribution du ph�enom�ene deviscoplasticit�e li�e �a la dynamique de la structure de �bres en treillis attach�ee autour de la cellule �a paroio�u intervient en plus un ot de d�eformation plastique dans les �equations d'�equilibre m�ecanique.

Malheureusement, je ne suis pas parvenu �a terminer cette seconde �etape car de nombreuses petites di�cult�estechniques li�es �a la syntaxe de Fenics (versions changeantes d'une ann�ee �a l'autre) sont venues s'ajouter, no-tamment lors du calcul tr�es important dans l'article des multiplicateurs de Lagrange (not�es � dans l'article) enchaque point du maillage de notre paroi (cf p.762, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones) , qui permettait d'obtenir la plupart desgrandeurs n�ecessaires pour l'impl�ementation num�erique �nale de cet article (cf p.770, Modeling cell wall growthusing �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones).

Je tiens �a cette occasion �a remercier une fois de plus mes deux tuteurs de stage, Etienne COUTURIER etJulien DERR, pour l'aide pr�ecieuse qu'ils m'ont apport�e pour debuger certains codes di�ciles !

Les auteurs de notre article de r�ef�erence (Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones) proposent une formulation semi-implicite pourla r�esolution variationnelle par �el�ements �nis (FEM) d'�equations m�ecaniques provenant d'un mod�ele de plas-ticit�e appel�e mod�ele de d�ecomposition multiplicative d'une d�eformation plastique �nie, appliqu�ee surl'ensemble du domaine de la paroi (cylindrique) d'une cellule-souche Chara dans notre cas.

Le tenseur gradient de d�eformations F associ�e �a cette transformation s'�ecrit alors sous la forme suivante,appel�ee approche de Rodriguez :

F = Fe Fg

o�u Fe d�esigne la contribution �elastique de F responsable du mouvement rigide des �bres et du mat�eriau support,et o�u Fg est la d�eformation plastique r�esultant du processus de d�esagr�egation des �bres et de croissance de laparoi seulement.

7

Page 8: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Cette d�ecomposition du gradient de d�eformations F fait intervenir trois con�gurations de la structuremat�erielle B �etudi�ee :

B0 : la con�guration initiale au repos de BBt: une con�guration interm�ediaire de B

B t : la con�guration de B d�eform�ee �a l'instant t>0

On admet qu'il est possible d'�ecrire un syst�eme d'�equations d�eterministe tel que le processus�elastoviscoplastique de d�eformation du syst�eme mat�eriel B soit �equivalent �a la superposition d'une premi�ered�eformation entre l'�etat initial B0 et l'�etat interm�ediaire Bt, correspondant �a un ensemble de d�eformationssuccessives in�nit�esimales li�ees seulement �a la contribution plastique Fg, et d'une seconde d�eformation

uniquement due au ot �elastique Fe entre cet �etat interm�ediaire �ctif et l'�etat �nal r�eel Bt.

Le tenseur droit de d�eformation de Cauchy-Green , que l'on notera par abus de langage comme samatrice repr�esentative C, est donn�e par :

C = Ft F

Le tenseur gauche de d�eformation de Cauchy-Green , que l'on notera par abus de langage comme samatrice repr�esentative b, est donn�e par :

b = F Ft

D'apr�es ce qui pr�ec�ede, la partie �elastique de la matrice C correspond donc �a la d�eformation de l'�etat inter-m�ediaire Bt :

C = (Fe)tFe

(d'o�u la notation C)

Et, semblablement, la partie �elastique du tenseur gauche de d�eformation de Cauchy-Green est donn�ee par :

b = Fe (Fe)t

On d�e�nit par ailleurs le gradient de vitesse L par :

L = _F F�1

Compte tenu de la d�ecomposition initiale de Lee, on a :

L = _Fe(Fe)�1+ Fe _F

g(Fg)�1 (Fe)�1 = Le + Lg

On notera respectivement De,We les parties sym�etrique et antisym�etrique de la contribution �elastique Le ,puis Dg,Wg les parties sym�etrique et antisym�etrique de la contribution plastique Lg du tenseur L .

De fa�con semblable au cas du tenseur C, on d�e�nit les tenseurs gradients de vitesse plastique et �elastique surla con�guration interm�ediaire Bt :

Le= (Fe)�1 _F

e

Lg= _F

g(Fg)�1

Derechef on notera respectivement De,W

eles parties sym�etrique et antisym�etrique du gradient de vitesse

�elastique Le, puis D

g,W

gles parties sym�etrique et antisym�etrique du tenseur gradient de vitesse plastique L

g.

8

Page 9: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Les tenseurs vitesse de d�eformation plastique et �elastique sont donc donn�ees, sur la con�guration inter-m�ediaire Bt , par :

Dg= sym L

g=

(C Lg+ (L

g)t C)

2

De= sym L

e=

(C Le+ (L

e)t C)

2

Ci-dessus, C joue un role de m�etrique sur la con�guration interm�ediaire Bt .

Dans le mod�ele consid�er�e, les parties antisym�etriques n'interviennent pas et seront consid�er�ees comme nulles(structure semi-cristalline) .

En notant J le d�eterminant de F (J=detF), � le tenseur de contraintes de Cauchy sur B t, on note � le tenseurpression de Kirchlo� d�e�ni par � = J*�.

Pour d�e�nir g�eom�etriquement les �bres, les auteurs de l'article prennent d'abord un vecteur unitaire a0(X)

appartenant �a la sph�ere unit�e , puis son image a(X, t) par la d�eformation continument d�erivable F(X,t) =@

@X,

ce qui produit bien un champ de "vecteurs-�bres" :

a(X, t) = F(X,t) a0(X)

o�u X2 B0, est d�e�nie par x= (X,t)2B t, B0 �etant la con�guration initiale, B t �etant la con�guration �nale .

Les auteurs posent les notations A = a a , A0 = a0 a0 , �a = C:A0= tr(A) puis ~a =ap�a

( ~a. ~a =1 ),

qui est le vecteur directeur unitaire de la d�eformation associ�ee �a F.

Ils adoptent une d�ecomposition en 3 parties de la croissance de la cellule �a paroi : une extension isochoresans transformation irr�eversible des �bres, une dilatation volumique sans transformation irr�eversible des�bres , et en�n une contribution irr�eversible de distorsion des �bres .

On pose :

~A = ~a ~a

R�a = dev[ ~A] = ~A -1

3tr( ~A) I .

R�a est la direction principale selon laquelle s'e�ectue la distorsion des �bres, lors de la croissance de la paroiprimaire de la cellule, sur la con�guration Bt .

Son �equivalent R�a sur la con�guration interm�ediaire Bt est donn�e par :

R�a = A -1

3C

avec A = (Fe)t ~A Fe .

Puis on d�e�nit les deux variables isovolumes C et b , associ�ees �a la partie isochore de la contributionirr�eversible de distorsion des �bres dans le processus de croissance de la paroi, de la mani�ere suivante :

C = J�2=3

C , b = J�2=3

b

o�u J = detFe. On a bien en e�et : det C = det b = 1 .

Se basant sur les donn�ees d'�etudes exp�erimentales de tissus biologiques, les auteurs adoptent la d�ecompositionadditive de la fonction �energie libre sur la con�guration interm�ediaire Bt, en tant que somme des contribu-tions de dilatation volumique vol et d'extension isochore iso :

9

Page 10: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

(J , C , A) = vol(J) + iso(I1, I2, I4, I5)

o�u A = a a, a = Fg a0 , I1 = tr C, I2 =1

2[(tr C)2 - tr (C)2] , I4 = C : A = �a , I5 = (C)2 : A

Dans cette mod�elisation de cellule �a paroi, la fonction �energie libre est donn�ee par la formule suivante :

(J , C , A) =1

2K (J - 1)2 +

1

2� (I1 - 3) +

K1

2K2[exp(K 2(I4 -1)

2) - 1] : (1)

o�u K, � sont des constantes li�ees �a la paroi de la cellule; et o�u K 1, K 2 sont des param�etres li�ees �a la r�eponse�elastique des micro-�bres.

Le premier et le second terme de l'�equation (1) correspondent �a la r�eponse hyper�elastique isotrope dela paroi de la cellule tandis que le troisi�eme terme provient de la dynamique de la structure semi-cristallinedes micro-�bres, dont l'agencement (la longueur des "attaches" et le pourcentage d' "attaches cass�ees" dans un�el�ement volumique de r�ef�erence sont d�ecrits respectivement par les param�etres l et � dans l'article) est obtenueen partant d'une loi de distribution gaussienne, not�ee p(l) et d�ecrivant presque surement la longueur des"attaches" entre les �bres lors du processus de croissance de la paroi primaire (cf p.766, Modeling cell wallgrowth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones).

Sur la con�guration interm�ediaire Bt , le second tenseur de Piola-kirchlo� est donn�e par :

S = 2@

@C

Le tenseur vitesse de d�eformation �elastique (elastic tangent modulus), not�e c dans cet article, est donn�e par :

c = 4@2

@(C)2

Sur la con�guration r�eelle et �nale B t , le tenseur de Cauchy � et le tenseur (d'ordre 4) vitesse de d�eformation�elastique c sont alors donn�es par les relations suivantes :

� = J�1

Fe S (Fe)t

[c]ijkl = J�1

FeiI FejJ FekK FelL [ c ]IJKL

La pression de Kirchlo� est not�ee � = J �. Sa d�eriv�ee de Lie, not�ee �egalement Lev� , est donn�ee par :

Lev� = _� - Le � - � (Le)t (d�e�nition)

On a alors : Lev� = Fe _S (Fe)t = c : De

**********************************************************************************************

Brefs rappels de M�ecanique des Milieux Continus (M.M.C.) :

Dans le rep�ere cart�esien < = (O, �!e1 ;�!e2 ;�!e3) on consid�ere, �a l'instant t=0, un solide 0 suppos�e connexe et aurepos. Chaque point M0 de ce solide poss�ede, �a l'instant t=0, dans la base cart�esienne B = f�!e1 ;�!e2 ;�!e3g

associ�ee au rep�ere < les coordonn�ees Lagrangiennes (X1, X2, X3) .

On appelle t le solide, �egalement suppos�e connexe, �a l'instant t>0 .Soient � l'application transformant 0 en t et Mt=�t(M0) le point image du point M0 par �t

appartenant �a t=�t(0).

On attribue �a���!OMt les coordonn�ees (x1(t), x2(t), x3(t)), appel�ees coordonn�ees Eul�eriennes du point

Mt 2 t �a un instant t>0 .

On note�!U=

����!M0Mt le vecteur d�eplacement de coordonn�ees (x1(t)- X1, x2(t) - X2, x3(t) - X3) pour t>0 .

10

Page 11: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

On note F le tenseur gradient de d�eformations du vecteur U par rapport aux coordonn�ees LagrangiennesX1, X2, X3 :

F =@(OMt)i@Xj

�!ei �!ej

avec sommation implicite (convention d'Einstein) sur les indices i,j2f1,2,3g.

On note E le tenseur de d�eformations de Green-Lagrange d�e�ni par :

E = 12*(F

t*F - I) = 12*(C - I)

o�u C = Ft * F est le tenseur de dilatations de Cauchy-Green droit et I = �ij�!ei �!ej est le tenseur

identit�e.On �ecrit souvent le tenseur de Green-Lagrange sous la forme suivante :

E = 12*((rX

�!U)t*rX

�!U + (rX

�!U)t + rX

�!U) = 1

2*(rX�!U)t*rX

�!U + "

o�u " est appel�e tenseur de d�eformations lin�earis�e, et avec rX d�esignant l'op�erateur vectoriel r de d�erivationpar rapport aux coordonn�ees Lagrangiennes X1, X2, X3 . En e�et, on a :

F = I + rX�!U par d�e�nition de

���!OMt =

���!OM0 +

����!M0Mt =

���!OM0 +

�!U avec :

�!U = Ui * �ij

�!ei �!ejrX�!U =

@Ui@Xj

�!ei �!ej

Sym�etriquement on d�e�nit le tenseur de dilatations de Cauchy-Green gauche par :

b = F* Ft

On appelle tenseur de Euler-Almansi le tenseur e d�e�ni par :

e = 12*( I - b

�1) = 12*( I - (F

t)�1 * F�1)

D�ecomposition polaire

Si la matrice F associ�ee au tenseur F n'est pas une matrice singuli�ere (i.e. non inversible) alors il existe uneunique matrice orthogonale Q, il existe deux matrices sym�etriques d�e�nies positives U et V (uniques �egalement)telles que :

F = Q*U = V*Q

De ce fait on obtient, sous l'hypoth�ese d'inversibilit�e (l'�elasticit�e pure �etant une transformation r�eversible) dela matrice gradient de d�eformations, le r�esultat suivant :

E = 12*(U

2 - I) et e = 12*(I - (V

�1)2)avec U, V sym�etriques d�e�nies positives

U2 = C , V2 = bF = Q*U = V*QQ orthogonal

Premier tenseur de Piola-Kirchlo�

� = J*�*(F�1)t

Il v�eri�e en e�et :

�(�!n0)*dS0 = �(�!nt)*dSt

11

Page 12: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

o�un0 est la normale unitaire sortante �a un �el�ement surfacique dS0 de 0, �a l'instant initial t=0nt est la normale unitaire sortante �a �a un �el�ement surfacique dSt de t , �a l'instant t>0

Second tenseur de Piola-Kirchlo� :

s = F�1 * �Int�eret du second tenseur de Piola-Kirchlo� :

s est un tenseur sym�etrique(r�e�el) =) s est diagonalisable

Pression de Piola-Kirchlo� :� = J * �

Mod�ele de Saint Venant-Kirchlo�

Il s'agit simplement d'une extension du mod�ele lin�eaire �elastique de Hooke aumod�ele hyper-�elastique non-lin�eaire en substituant " par E et � par le second tenseur de Piola-Kirchlo� s dans la loi de Hooke lin�eairepour un mat�eriau homog�ene isotrope :

s = �*tr(E)*I + 2*�*E

o�u � et � sont les coe�cients de Lam�e , � correspondant au module de cisaillement de la d�eformation dumat�eriau. Ils s'expriment en fonction du module de Young E et du coe�cient de Poisson � par :

� =� � E

(1 + �) � (1� 2 � �)� =

E

2 � (1 + �)

Chaque mat�eriau est caract�eris�e par le couple (E, �) .

Le tenseur de densit�e �energ�etique d�e�ni par :

W(E) =1

2*E:D:E =

1

2*E:[�*I+2*�] :E =

2*[tr(E)]2+�*tr(E2)

donne alors :

s =@W(E)

@E

**********************************************************************************************

On a �egalement les relations suivantes :

@J

@C=

1

2J (C)�1 : (2)

@C

@C=

1

2J�2=3

[I-1

3C � (C)�1] : (3)

o�u I est le tenseur d'ordre 4 donn�e par :

(I)IJKL =1

2(�IJ �KL + �IL �JK)

Ce r�esultat provient de l'�egalit�e suivante :

(@(C)�1

@C)IJKL =

�12

((C)�1IK (C)�1JL + (C)�1IL (C)�1JK)

Les �egalit�es (2) et (3) permettent d'obtenir les expressions �nales de � , S, c et c donn�ees dans la Table 1de l'article (cf p.757, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law,R.Huang, AA. Becker, I.A. Jones).

La force e�cace inh�erente �a la contribution irr�eversible de distorsion des �bres est donn�ee par :

12

Page 13: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

��a = � : R�a , pour la con�guration B t

��a = S : R�a , pour la con�guration Bt

Les tenseurs associ�es sont :

��a := ��a~A

S�a =��a�a

A

Pour la partie dilatation volumique sans transformation irr�eversible des �bres , on introduit lestenseurs suivants :

�A = � - f� : ~Ag ~A , sur B t

SA= S -

1

�2a

([C S C]:A) A , sur Bt .

La force e�cace associ�ee �a la partie dilatation volumique sans transformation irr�eversible des �bres est alorsdonn�ee par :

�vol = tr(�A) , sur B t .

�vol = Tr( SA) = C : S

A, sur Bt .

(l'op�erateur trace est li�e, en m�ecanique des milieux continus, �a la m�etrique de la con�guration)

Les tenseurs asoci�ees sont :

�vol :=1

3�vol I , sur B t.

Svol =1

3�vol (C)

�1 , sur Bt .

En�n pour la partie extension isochore sans transformation irr�eversible des �bres , on introduit :

�dev = � -3

2[�vol + ��a ] = � -

1

2[ tr(�A)*I+3*(� : R�a)*

~A], sur B t .

Sdev

= S -3

2[Svol + S�a ] = S -

1

2[ tr( S

A)* (C)�1 +

3

�a*(S : R�a )* A] , sur Bt .

Remarque : Tr(Sdev

) = 0 = tr(�dev).

�dev et Sdev

sont appel�es tenseurs de contraintes de Spencer .

En r�esum�e, les trois forces intervenant dans la d�ecomposition de la croissance de la cellule �a paroi adopt�eepar les auteurs de l'article de r�ef�erence seront, sur la con�guration r�eelle B t, les tenseurs ��a , �vol et �

dev, et,

de mani�ere associative, sur la con�guration interm�ediaire �ctive Bt, ce seront les tenseurs S�a , Svol et Sdev

.

Les trois parties du m�ecanisme de croissance de la cellule �a paroi d�ecrites plus haut sont suppos�eesind�ependantes.

Les auteurs d�e�nissent deux entit�es physiques, appel�ees invariants du tenseur de Spencer, tr�esd�eterminantes dans le mod�ele th�eorique de cet article car elles permettent �a chaque fois de calculer, en touspoints de la paroi, la valeur de la fonction seuil de plasticit�e pour chaque partie de la croissance.

Il s'agit de deux grandeurs scalaires, d�e�nies sur B t par :

~J1 = (�dev.~a). (�dev.~a)~J2 = �dev : �dev

ou, de mani�ere �equivalente, d�e�nies sur Bt par :

J1 =1

�ak SdevCSdev ka

J2 = Tr(Sdev

CSdev

)

13

Page 14: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

o�u

Tr est l'op�erateur trace d�e�ni sur Bt par Tr(.) = C : (.)k (:) ka est une fonction d�e�nie sur Bt par k (:) ka = [C(:)C ] : A

La fonction seuil relative �a la partie isochore de la croissance est not�ee fdev sur Bt et ~fdev sur B t.

Elle est d�e�nie par :

fdev =J1Y 21

+J2Y 22

- (1+h(�)) , sur Bt

~fdev =~J1Y 21

+~J2Y 22

- (1+h(�)) , sur B t

o�u Y1 et Y2 sont des param�etres de seuil caract�eristiques de la paroi, et o�u h est une fonction scalaire appel�eefonction de durcissement d�ependant du param�etre de durcissement ou param�etre d'�ecrouissage, vucomme tel �a l'�echelle macroscopique et not�e � dans l'article .

La fonction seuil relative �a la partie dilatation volumique de la croissance est not�ee fvol sur Bt et ~fvol surB t.

Elle est d�e�nie par :

fvol = I2 - (Y3 + hvol) , sur Bt~fvol = I2 - (Y3 + hvol) , sur B t

o�u Y3 et hvol sont des param�etres similaires �a Y1, Y2 et h ; et o�u I2 et I2 sont des invariants d�e�nis de la

meme fa�con que l'invariant, vu plus haut, I2 (cf p.10) hormis le fait qu'ils d�ependent respectivement de �A et

de SA(cf �egalit�e (47), p.761, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive

law, R.Huang, AA. Becker, I.A. Jones).

En�n la fonction seuil associ�ee �a la contribution irr�eversible de distorsion des �bres est not�ee, toujours dansl'article, f�a sur Bt et ~f�a sur B t.

Elle est d�e�nie par :

f�a = ��a - (Y4 + h�a) , sur Bt~f�a = ��a - (Y4 + h�a) , sur B t

o�u Y4 est un param�etre de seuil caract�eristique de la paroi , et o�u h�a est une fonction de durcissement,�egalement bien pr�ecis�ee dans l'article.

Nota bene 1 : la premi�ere fonction seuil fdev (ou ~fdev) d�e�nie plus haut est a-dimensionnelle .

Nota bene 2 : la ligne de niveau fdev = 0 est l'�equation d'une ellipse dans le plan cart�esien (OXY), si l'on

se ram�ene aux variables X=pJ1 et Y=

pJ2 dans l'expression de fdev divis�ee par (1+h(�)) [ h est une fonction

positive ou nulle par d�e�nition] .

14

Page 15: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Par suite on d�e�nit, pour chacune des trois parties ind�ependantes du processus de croissance de la paroi,une fonction scalaire appel�ee fonction de surcharge :

� Les fonctions de surcharge associ�ees aux parties dilatation volumique et distorsion des �bres de la croissancede la cellule sont not�ees respectivement �vol et ��a .

Chacune correspond simplement �a la valeur e�cace de la fonction seuil correspondante :

�vol =1

2< fvol >

��a =1

2< f�a >

avec < x > =1

2(x+j x j) , 8x 2 R (si x est n�egatif sa valeur e�cace est nulle).

� En revanche, la fonction de surcharge associ�ee �a la phase de croissance isochore, not�ee �dev, ne d�ependplus explicitement de la fonction seuil correspondante fdev.

En reprenant la remarque du Nota bene 2, elle correspond en e�et g�eom�etriquement �a la distance,

not�ee � dans l'article, d'un point J, de coordonn�ees (pJ1,pJ2) dans le rep�ere cart�esien (O;

pJ1;pJ2),

�a l'ellipse ou �a la ligne de niveau d'�equation fdev = 0 dans ce rep�ere (cf x4.3., p.761, Modeling cell wallgrowth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones).

Par ailleurs, le fait que le tenseur de contraintes de Spencer Sdev

d�ecrive physiquement un ph�enom�ened'extension isochore permet, par sym�etrie axiale de la con�guration initiale des �bres, de se restreindre

au cas o�u le point J est contenu dans le quart de plan SJ = fpJ1 � 0;

pJ2 � 0g du plan contenant

l'ellipse d'�equation cart�esienne :

(pJ1)

2

(Y1 �p1 + h(�))2

+(pJ2)

2

(Y2 �p1 + h(�))2

= 1

(cf Fig. 4., p.761, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutivelaw, R.Huang, AA. Becker, I.A. Jones)

De fait, la valeur de cette distance � est obtenu en r�esolvant le probl�eme de minimisation sous contraintesuivant :

�(�, J) = min~�2SJ

(~�(~�, J))

avec ~�= (~�1, ~�2) solution de fdev(~�, �) =~�21Y 21

+~�22Y 22

- (1+h(�)) = 0 : (4)

o�u ~� =q(J � ~�):(J � ~�) , 8~� 2 SJ ;

et o�u � d�esigne le point du quart d'ellipse (fdev = 0) pour lequel le minimum est atteint.

Les auteurs de l'article introduisent alors un multiplicateur de Lagrange , not�e �, qui permet de ramener le probl�eme (4) �a la forme d'un second probl�eme de minimisation, �egalement, mais sans contrainte:

�(�, J) = min~�2SJ

(~�(~�, J) - � fdev(~�, �)) : (5)

� est l'une des solutions r�eelles de l'�equation d'ordre 4 suivante :

(1+h) (� - Y21)2 (� - Y2

2)2 - J2 Y

22 (� - Y

21)2 - J1 Y

21 (� - Y

22)2 = 0 : (6)

15

Page 16: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Cette solution r�eelle (si elle existe) doit, par rapport aux autres solutions r�eelles (si elles existent aussi),donner la plus petite valeur positive ou nulle de la fonction distance �, qui est alors donn�ee par :

�(�, J) = - �

sJ1

(�� + Y 21 )

2+

J2(�� + Y 2

2 )2

: (7)

Initialement , ce multiplicateur de Lagrange � est en fait d�e�ni comme un nombre r�eel �etant strictementinf�erieur aux carr�es des param�etres de seuil caract�eristiques de la paroi, Y1 et Y2, au cours de l'�etape"extension isochore" de la croissance :

� < Y21

: (8)� < Y2

2

Il est d�e�ni de telle sorte que le point � de coordonn�ees (

pJ1

(1� �=Y 21 )

2;

pJ2

(1� �=Y 22 )

2) soit bien le projet�e

du point J , de coordonn�ees (pJ1,pJ2), sur cette ellipse .

En e�et, si � ne satisfait pas (8), alors � n'est plus dans le "bon quart" de l'ellipse (cf Fig. 4., p.761,Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA.Becker, I.A. Jones) , et r�eciproquement.

Remarque : � est homog�ene �a Y 21 et Y 2

2 (il s'exprime donc en Pa2 dans le syst�eme U.S.I.).

En injectant les coordonn�ees de � dans l'�equation fdev = 0 puis dans l'expression de ~� , on en d�eduitalors que � doit satisfaire l'�equation (6) et que � est bien donn�ee par la relation (7) .

Remarque : � = 0 () � = 0 .

En e�et, les cas Y1 = 0 ou Y2 = 0 n'existent pas physiquement, pour des cellules v�eg�etales du moins.

Par ailleurs, le cas o�u l'�equation (6) poss�ede uniquement des racines complexes n'est pas trait�e danscette s�equence de calcul de l'article, raison pour laquelle on l'assimilera tacitement au cas � = 0.

La fonction de surcharge associ�ee au ph�enom�ene physique d'extension isochore lors de la croissancede la paroi primaire, est alors d�e�nie de la mani�ere suivante :

�dev = 0 si fdev � 0�dev = �m si fdev > 0

o�u m est appel�e taux de sensibilit�e.

Des �etudes exp�erimentales montrent que la vitesse d'�elongation d'une cellule Chara �evolue lin�eairementavec sa pression de turgescence si on reste dans un intervalle de pressions raisonnable (0.35 - 0.6 MPa).C'est pourquoi dans le cadre de ce mod�ele et en restant dans cet intervalle de pressions, le taux de sensibilit�em sera pris �egal �a 1 (cf x 5.1.1., p.772, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones).

Le ot d'�ecoulement plastique est �nalement donn�e par la formule suivante :

Dg= _�

@�dev@S

+ _�vol@�vol@S

+ _��a@��a@S

: (9)

16

Page 17: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

o�u _�, _�vol, _��a sont des taux d'�ecoulement viscoplastique e�cace d�e�nis par :

_� =�dev�

_�vol =�vol�=�1

_��a =��a�=�2

et o�u � est la viscosit�e des micro-�bres.

La viscosit�e � est fonction de la temp�erature T selon la loi d'Arrhenius :

� = �0 exp(-Q/R(T-T0))

Les valeurs num�eriques pour le mod�ele et les simulations sont : T0 = 0�C; R = 8.314472 J/K.mol ; Q = 50*R;�0 varie entre 10

10 et 1013 Pa.s selon les cas d'�etudes de croissance (cf x 5.2., p.774, Modeling cell wall growthusing �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones).

Toutefois les auteurs de l'article donnent en annexe (cf Appendix B, p.781, Modeling cell wall growthusing �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones) une m�ethodede calcul permettant d'estimer la viscosit�e � ainsi que les param�etres de seuil dynamiques de la paroi �a l'instantinitial, pour les simulations num�eriques, (1+h(t=0))Y1 et (1+h(t=0))Y2 (qui correspondent en r�ealit�e auxvaleurs des param�etres de seuil statiques Y1 et Y2) en partant de la solution analytique dans le cas simple d'uned�eformation �elastoviscoplastique in�nit�esimale ( _�vol = _��a = 0).

Dans le sch�ema num�erique �nal de l'article, les trois directions d'�ecoulement plastique intervenantdans l'�egalit�e (9) associ�ees aux trois parties ind�ependantes du m�ecanisme de croissance de la cellule Chara,d�ecrites plus haut, sont renomm�ees de la mani�ere suivante :

symR�=@�dev@S

R�vol =

@�vol@S

R�a =@��a@S

Les expressions formelles des directions symR�et R

�vol sont donn�ees directement par :

R�vol = fTrS

Ag Rvol - CSAC : (10)

avec Rvol = C - A : (11)

symR�= �3 [A �

dev+ (A �

dev)t] + 4 �4 sym�

dev: (12)

o�u �3 et �4 sont des fonctions d�e�nies, dans le cas m = 1, par :

�3 =@�

@J1+ #1

@�

@�

�4 =@�

@J2+ #2

@�

@�

(cf �egalit�e (67), p.763, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law,R.Huang, AA. Becker, I.A. Jones)

17

Page 18: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

et avec :

�dev

= Sdev

C

Les fonctions �3 et �4 sont exprim�ees dans l'Appendix A de l'article directement �a partir des param�etresintervenant dans la fonction de surcharge �dev (cf p.12) i.e. �, �, J1, J2, Y1 et Y2 (cf Eq. (A2), (A3) et (A5),Appendix A, p.779, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law,R.Huang, AA. Becker, I.A. Jones) .

Rappel : souvenons-nous (dans l'�egalit�e (10)) que l'op�erateur trace not�e Tr (Tr(.) = C :(.)) sur la

con�guration �ctive Bt est di��erent de l'op�erateur trace, not�e tr, sur la con�guration r�eelle B t (tr(.) = I : (.)) .

A partir de l'�egalit�e (12), on on d�eduit alors le tenseur de ux viscoplastique, not�e symR� dans l'article,sur la con�guration �nale B t :

symR� =@�dev@�

= ((Fe)t)�1@�dev@S

(Fe)�1 = ((Fe)t)�1 symR�(Fe)�1 : (13)

Rappel : le passage de la con�guration interm�ediaire Bt �a la con�guration �nale B t s'e�ectue en e�et, dans lad�e�nition de ce mod�ele de plasticit�e, seulement via la contribution �elastique Fe.

Dans la section 4.4. de l'article, une expression de ce tenseur est donn�ee �a partir de �3, �4, �dev, ~A :

symR� = �3 ( ~A �dev + �dev ~A) + 2 �4 �dev : (14)

(cf Eq. (66) et (68), p. 763, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplasticconstitutive law, R.Huang, AA. Becker, I.A. Jones) .

Semblablement, la direction de dilatation volumique R�vol sur la con�guration B t est donn�ee par :

R�vol =

@�vol@�

= ftr�Ag Rvol - �A : (15)

avec Rvol = I - ~A

Pour de tr�es petites d�eformations plastiques, ce qui sera le cas dans nos simulations num�eriques, le taux ded�eformation plastique e�cace des micro-�bres _��a devient n�egligeable.

Les taux de d�eformation volumique _�vol et isochore _� sont alors de plus reli�es entre eux par un facteurhomoth�etique, not�e � :

_�vol = � _�

Ce ratio � provient de la condition de conservation de l'�epaisseur de la paroi au cours de la croissance :

n.Dg.n = 0 , sur B t

n.Dg.n = 0 , sur Bt

o�u :

n = F n0 est le vecteur normal unitaire (sortant) �a la paroi B t

n0 est le vecteur normal unitaire (sortant) �a la paroi dans sa con�guration initiale B0

n = Fg n0 = (Fe)�1 n est le vecteur normal unitaire (sortant) �a la paroi Bt

En injectant cette condition dans l'�equation (9), on obtient :

� = -n:symR

�:n

n:symR�vol:n

18

Page 19: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Par suite, on a donc :

Dg = Lg = _Fg(Fg)�1 = _� symR

�+ _�vol R

�vol =

_� (symR�+ � R

�vol) =

_� R

o�u R = symR�+ � R

�vol

D'o�u l'on d�eduit l'expression suivante, r�e-utilis�ee dans l'algorithme �nal de l'article :

_Fg= _� R Fg : (16)

Par ailleurs, dans l'expression de fdev (cf p.10), on prendra h(�) = �, tel qu'il est d�e�nici-dessous (�equation (17)) .

La fonction de durcissement � doit alors v�eri�er la relation suivante, appel�ee loi de durcissement enextension isochore :

d�

dt= _� = (h1+h2 �) _� : (17)

Pour obtenir les expressions exactes de h1 et h2 , il faut partir de la loi temporelle suivie par le param�etred'�ecrouissage � (cf Eq. (80) �a Eq. (86), p.766-767, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones ).

Valeurs num�eriques : h1 = 20.6 et h2 = 20 , pour la plupart des cas d'�etude (cf x5.2, p.774, Modeling cellwall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones),hormis les cas o�u le temps de croissance devient tr�es grand (passant de quelques minutes �a 20 heures, parexemple, dans le case study 5 ), et o�u seule la temp�erature T varie, dans le case study 3.

Pour les simulations interm�ediaires, on peut toutefois adopter le mod�ele viscoplastique uni-axial tel qu'ilest propos�e par les auteurs de l'article dans la section 4.5.3. (cf x Eq. (87)., p.767, Modeling cell wall growthusing �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones).

Impl�ementation num�erique du ot plastique :

Le sch�ema num�erique propos�e �a la �n de l'article permet de simuler la croissance de la paroi d'une celluleChara, de donner une estimation de son ot plastique ��n ainsi que de son taux de dilatation volumique _�vol�a chaque pas de temps �t = tn+1 - tn . Il s'agit d'un algorithme semi-implicite :

� Tout d'abord, on �xe un incr�ement de d�eplacement u pour obtenir F �a l'instant tn+1:

n+1 = n + u

Fn+1 =@ n+1@X

� Puis connaissant Fn, Fn+1, Fgn, Sn, �n et �t (le pas de temps) , on �ecrit la s�equence suivante :

Rn = symR�n + ~�n R

�vol(tn)

Fgn+1 = (1+��nRn) F

gn

Fen+1 = Fn+1 (F

gn+1)

�1

19

Page 20: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Cn+1 = (Fen+1)

t Fen+1

an+1 = Fgn+1 n0

�n+1 = �n + (h1+h2 �n) ��n : (*)

Sn+1 = 2@(Cn+1;An+1)

@C

��n = �t�dev(Sn+1;an+1; �n+1)

�: (**)

_�vol(tn+1) = ~�n��n�t

o�u Xn d�esigne la valeur d'une fonction quelconque X �a l'instant t = tn = n*�t , pour n appartenant �a N.

L'inconnue principale de cet algorithme est donc le ot plastique ��n, qui devient ainsi le param�etrede d�erivation permettant, �a chaque �etape n, de r�ecup�erer le tenseur D

g(tn+1) ainsi que le durcissement

�n+1 (cf �egalit�e (*)) en r�esolvant un syst�eme d'�equations non lin�eaire.La m�ethode de r�esolution employ�ee par les auteurs de l'article est la m�ethode de Newton-Raphson.

Nota bene : les auteurs notent de mani�ere un peu incoh�erente R�n le tenseur qu'ils nomment symR

�n juste

auparavant. En e�et, seule la partie sym�etrique deR�n intervient alors dans le tenseur (sym�etrique) d'�ecoulement

plastique �nal Dg= _� R, qu'on veut connaitre apr�es chaque pas de temps �t (cf Eq. (99), p.770, Modeling cell

wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones).

Pour n2 N, l'utilisation de la m�ethode de Newton-Raphson et le calcul de Rn n�ecessitent �a chaque �etape n,

d'apr�es l'�egalit�e (**), le calcul de la d�eriv�ee partielle@�

@��n, lequel est donn�e de mani�ere tr�es d�etaill�ee en annexe

de l'article (cf Appendix A, p.779, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplasticconstitutive law, R.Huang, AA. Becker, I.A. Jones).

On peut en d�eduire ensuite la valeur, �a l'instant t = tn+1, de la d�eriv�ee@�vol@��n

via la relation suivante :

_�vol =�vol�=�1

= � _� = ��dev�

3. Mod�elisation num�erique de la cellule �a paroi

Dans l'article auquel nous nous sommes r�ef�er�e tout au long du stage, la paroi de la cellule Chara estassimil�ee g�eom�etriquement �a celle d'un cylindre de longueur L0 = 4 mm, de rayon int�erieur Rmin = 0.5 mm,

d'�epaisseur � = 10 �m, et de rayon ext�erieur Rmax = Rmin + � = 0.51 mm .

Le cylindre est suppos�e, dans l'article, ouvert �a ses deux extr�emit�es , i.e. en z =L02

et en z = -L02

, z d�esignant

la 3�eme coordonn�ee associ�ee au syst�eme de coordonn�ees polaire.Nous avons cependant �et�e contraint de d�eroger �a cette hypoth�ese dans notre maillage tridimensionnel, r�ealis�edans mon stage via le logiciel FreeFem++, en rajoutant deux calottes sph�eriques (de rayon Rmin et d'�epaisseur�) aux deux extr�emit�es du cylindre pour que converge la m�ethode PETsc appel�ee newtontr ("newton with trustregion"), optimale pour ce probl�eme, sur le logiciel de calcul scienti�que employ�e dans ce projet : le logicielFenics .La section de la paroi du cylindre est S = � (R2

max - R2min) .

La pression de turgescence, not�ee P, de la cellule B est appliqu�ee de mani�ere uniforme et constante sur l'ensemblede son bord @B, qui correspond au bord du cylindre de hauteur L0 , de rayon Rmin et d'aire :

20

Page 21: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

2*�*(R2min + L0*Rmin)

La section de la cellule cylindrique priv�ee de sa paroi est Sint = � R2min .

De ce fait, la pression �equivalente exerc�ee sur les deux extr�emit�es libres de la paroi de la cellule cylindriquesera �egale �a la meme pression P multipli�ee par un rapport d'homoth�etie, �egal au rapport des deux sections :

~P = P*SintS

= P*R2min

(Rmin + �)2 �R2min

Dans l'�egalit�e ci-dessus, un d�eveloppement limit�e �a l'ordre 1 en (�/Rmin) au d�enominateur donne alors :

~P � P*Rmin

2 � �

Dans la mod�elisation g�eom�etrique adopt�ee par les auteurs de l'article, on substitue donc P par ~P sur chacunedes deux sections "libres" de la paroi cylindrique.

Les conditions de bord pr�esentent ainsi des propri�et�es de sym�etrie (radiale, i.e. par rotation autour de l'axe ducylindre, et longitudinale, i.e. par rapport au plan z=0) qui sont remarquables puisqu'elles permettent de pouvoirrestreindre les simulations num�eriques, ainsi que les auteurs ont proc�ed�e pour chacune des simulations donn�eesdans l'article, �a l'�echelle par exemple d'un huiti�eme du cylindre (ils ne consid�erent que la moiti�e "sup�erieure"d'un quart du cylindre initial). La partie �elastique de la d�eformation, qui correspond �a un "gon ement"hyper�elastique isotrope de la cellule, est en e�et, comme nous le verrons plus tard, celle d'une d�eformationhomog�ene, ce qui signi�e que la d�eformation (li�ee uniquement au mouvement rigide de la paroi) associ�ee estuniforme sur l'ensemble de la coque cylindrique soumise au ph�enom�ene de turgescence.

Par ailleurs, rappelons que l'agencement des �bres, dispos�ees horizontalement et espac�ees r�eguli�erement ausein de la paroi, respecte les memes propri�et�es de sym�etrie par hypoth�ese.

Les r�esultats des simulations num�eriques, r�ealis�ees �a partir du logiciel priv�e ABAQUS, sont donn�ees dansla section 5.2. de l'article. Elles utilisent toutes le meme maillage tridimensionnel d'un huiti�eme de la coquecylindrique initiale (de longueur L0 = 4 mm), �a savoir un maillage comportant 600 �el�ements quadratiques(pav�es de R3) avec 20 n�uds d'�evaluation sur chaque �el�ement �ni.

(cf x 5., p. 771-772, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law,R.Huang, AA. Becker, I.A. Jones).

Sur le logiciel gratuit Fenics, nous avons pris �a la fois le parti et le pari d'adopter un maillage non pas enpav�es mais en t�etra�edres, avec 10 n�uds d'interpolation pour chaque �el�ement �ni (�el�ements P2).

Les librairies (PETsc) et options (�c options) auxquelles se rattache ce logiciel semblaient en e�et nepouvoir ni o�rir en tant que mailleur ni adopter en tant que solveur num�erique dans leurs versions actuelles le

type d'�el�ement �ni utilis�e sur ABAQUS par les auteurs de l'article.

Pour ces raisons l�a, nous avons choisi le maillage 3D d'une paroi cellulaire Chara donn�e enANNEXE 1, r�ealis�edonc sur le logiciel FreeFem++ , con�cu express�ement pour les m�ethodes de r�esolutions d'EDP par �el�ements �nis(m�ethodes FEM ).

Le maillage �nal obtenu (cf Figure 4), Th3�nhole, est sauvegard�e dans le �chier bacterie.mesh.

Pour la comparaison num�erique entre le gon ement hyper�elastique de la cellule et celui de la sph�ere , on ser�ef�erera au maillage sphere cavite.mesh construit dans le �chier Sphere cavite.edp : le maillage de la sph�ereest formellement presque le meme que dans le �chier adapted bacterie.edp, hormis les d�e�nitions de f1, f2 etf3 (on doit simplement y soustraire les termes de la r�egion ((x<L) && (x>-L)) ).

Notations : Les �chiers de la forme �lename.mesh sont des �chiers FreeFem++ tandis que ceux appel�es�lename.msh sont des �chiers convertis en codage msh via l'�editeur gmsh.

21

Page 22: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Cette conversion est n�ecessaire car on doit utiliser des maillage en code xml dans les simulations sur Fenics.Les maillages �lename.msh sont alors convertis en �chiers �lename.xml, grace �a la commande dol�n-convertsur UNIX (pour Ubuntu ) suivante :

dol�n-convert �lename.msh �lename.xml

On peut bien sur utiliser bon nombre d'options suppl�ementaires de FreeFem++, comme celles permettant dedonner des informations sur le maillage 3D pr�ec�edent Th3�nhole.On peut demander par exemple les coordonn�ees des sommets/points milieux (pour des �el�ements P2) d'untriangle (ou d'un t�etra�edre) ainsi que l'indice de ce triangle via la commande suivante :

int nbtriangles = Th3�nhole.nt ;

// Th3�nhole.nt est le nombre de triangles du maillage Th3�nhole .

for (int i=0; i < nbtriangles; i++)for (int j=0; j < 3; j++)

cout << i << j << "Th3�nhole[i][j] = " << Th3�nhole[i][j] << "x =" << Th3�nhole[i][j].x<< ", y = " << Th3�nhole[i][j].y << ", label = " << Th3�nhole[i][j].label << endl;

Th3�nhole(i) renvoie les coordonn�ees du sommet/point milieu i .Th3�nhole[k] renvoie les sommets/points milieux �etant sur le triangle k.Th3�nhole.nv renvoie le nombre de points d'�evaluation du maillage Th3�nhole.indice = Th3�nhole(0.505,0,0).nuTriangle donne le label ou l'indice du triangle contenant le point (0.505,0,0).Th3�nhole[indice].area donne l'aire de ce triangle .

(cf �chier info mesh adapted bacterie.edp)

Si on appelle Tk le triangle d'indice k dans le maillage Th3�nhole, alors le diam�etre maximal hh[ Th3�nhole],d�e�ni par Th3�nhole = maxfdiam(Tk)jTk 2 Th3�nholeg, est donn�e sur FreeFem++ via la commande suivante:

Vh hh = hTrianglecout << "hhmax = " << hh[].max << endl; : (18)

o�u Vh d�esigne l'espace discret d'�el�ements �nis, d�e�ni via la fonction fespace de FreeFem++, sur lequel doitetre projet�ee la solution recherch�ee du probl�eme variationnel consid�er�e.

Dans notre cas, ce sera l'espace Lagrangien des �el�ements �nis soit P1 soit P2, selon les simulations,continues sur le maillage Th3�nhole, et qui se d�eclare de la mani�ere suivante sur FreeFem++ :

fespace Vh(Th3�nhole, P1) , dans le cas P1 .fespace Vh(Th3�nhole, P2) , dans le cas P2 .

Dans le programme du �chier adapted bacterie.edp, la contrainte imposant un volume maximal pour chaquet�etra�edre �egal �a 0.001, provient du d�eterminant de la transformation T associ�ee au changement de m�etrique,auquel on impose de valoir 0.1, de telle sorte que tout triangle image Tk 2Th3�nhole satisfasse la conditionsuivante, appel�ee condition de maillage non d�eg�en�er�e :

�(Tk)

diam(Tk)� �

o�u � est r�eel strictement positif ; diam(Tk) = supfjx� yj;x; y 2 Tkg ; �(Tk) = maxbouleB�Tk(diam(B)).

En imposant un rapport d'aires de 0.1 entre Tk et Tk, on v�eri�e facilement, grace �a la commande hh[]:max(cf eq. (18)) par exemple , que cette condition est bien v�eri��ee.

Pour certaines simulations, plus ou moins longues selon les cas, nous avons �et�e amen�e �a sensiblement fairevarier le param�etre hh dans l'intervalle [0:05; 0:2], convenable si on conserve une subdivision sup�erieure ou �egale�a (L*0.1)2 du rectangle Th de d�epart (cf mesh Th p.20).

22

Page 23: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Figure 4: Maillage 3D bacterie.mesh de la paroi d'une cellule Chara, avec ajout de calottes sph�eriques auxextr�emit�es (�editeur gmsh).

23

Page 24: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Le volume maximal impos�e sur les t�etra�edres devrait donc etre en r�ealit�ehh3

6et non hh3 = 0.001.

Cela se justi�e par le fait que la fonction sizevolume de FreeFem++ calcule et r�eajuste non pas la tailledes t�etra�edres mais celle de chaque cube contenant 2 t�etra�edres adjacents, g�en�er�es par la fonction TetGen entreles deux surfaces de notre premier maillage Th3 = Th3sph + Th3sph2 (cf p. 21) sans t�etra�edres.

Le scalaire vv =1phh

, dans le code vu plus haut (cf p.21), correspond au facteur multiplicatif1pdet T

intervenant en g�eom�etrie di��erentielle lorsque l'on passe de la con�guration de r�ef�erence, le rectangle Th, �a lasous-vari�et�e di��erentielle �nale, appel�ee dans le code Th3�nhole (image de Th par T ), caract�eris�ee par ses

fonctions "poids" :

m11*vv , m21*vv et m22*vv

Le recours �a ce proc�ed�e ad hoc se justi�e par le fait que l'application T n'est, en aucun cas, unetransformation a�ne !

Par cons�equent, les estimations possibles vues en analyse num�erique des EDP s'appliquent di�cilement,voire pas du tout, dans le cas de notre maillage.

(cf expressions de f1, f2 et f3, p.20)

Un second code, mais cette fois-ci pour la mod�elisation g�eom�etrique des �bres dans la paroi cylindrique, a �et�er�ealis�e sur FreeFem++ �egalement, mais il n'est pas n�ecessaire pour simuler la croissance de la cellule en langagePython/Fenics .

Toutefois il serait bien utile pour une comparaison, en terme d'optimisation num�erique, entre unesimulation sur FreeFem++ et une simulation sur Fenics , par exemple pour la suite du projet, du sch�emasemi-implicite donn�e par les auteurs de l'article.

Le choix de Fenics dans ce stage est essentiellement du au fait que ce logiciel n'impose pas d'�ecrire �a chaquefois toutes les d�eriv�ees ou tous les gradients de mani�ere explicite.

En revanche, il est clair que le niveau de d�eveloppement des fonctions du logiciel FreeFem++ est tr�es �elev�evoire optimal en terme de controle des param�etres (fonctions tetgreconstruction, mmg3d, freeyams, oubien mshmet qui permet de calculer la m�etrique ou de corriger des probl�emes de valeurs propres li�es �a desm�etriques anisotropes du mesh (maillage) en prenant comme argument, par exemple, la fonction FE (fonctiontest) solution du probl�eme ), mais aussi de ra�nement (fonctions trunc et splitmesh par exemples) desmaillages 2D/3D en �el�ements �nis pour les probl�emes de r�esolution d'EDP par �el�ements �nis (FEM ).

Dans le �chier code theta.edp, nous avons simplement �ecrit le code d'une ou de plusieurs �bres tournantau sein de la paroi cylindrique (d'�epaisseur � = Rmax - Rmin) avec un angle d'inclinaison beta constant avecl'horizontale, i.e. avec le plan transversal au cylindre enveloppant la cellule.

Ce �chier est donn�e dans le dossier joint �a ce rapport, �a l'emplacement suivant : n helice+hyper3+theta+plasticiten code hyperelastique+helice FreeFem++ n Helice FreeFem++ .

Par hypoth�ese, dans le mod�ele de l'article, on prend un angle d'inclinaison initial beta(t=0) = 0(�bres transversales �a l'axe du cylindre et orient�ees dans la meme direction).

On ajoute aussi des calottes sph�eriques aux 2 extr�emit�es de chaque �bre, bien que ce soit a priori peut-etreinutile car _��a est n�egligeable dans ce mod�ele de croissance ( "�bres inextensibles" ) .

Lors de la compilation du �chier code theta.edp, on obtient une (ou plusieurs selon la valeur de beta et den dans le code) h�elice circulaire ou colonne torse tournant autour du cylindre de rayon Rmin et de hauteur

2*L (L di��erent, dans ce �chier, du "L de l'article").

24

Page 25: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Nous souhaitons ici simplement expliciter les notations et les calculs un peu "lourd" impl�ement�es via le �chiercode theta.edp.

******************************************************************************************

Notations dans le �chier code theta.edp, mod�elisant d'un point de vueg�eom�etrique, sur FreeFem++, l'aspect h�elico��dal du treillis de �bres au sein

de la paroi pecto-cellulosique au cours de sa croissance (i.e. pour t>0) :

Dans la base orthonorm�ee cart�esienne fe1,e2,e3g (base canonique de R3) , on consid�ere la cellule cylindriqueChara qui, sans tenir compte de sa paroi primaire, est d�e�nie simplement comme la superposition du cylindrede rayon Rmin et de hauteur 2*L avec les deux calottes sph�eriques ajout�ees "arti�ciellement" aux extr�emit�esde ce cylindre :

l1 =Rmin*cos(x)*cos(y)*(z>L)+Rmin*cos(x)*cos(y)*(z<-L)+ Rmin*cos(y)*((z<L)&&(z>-L));l2 =Rmin*cos(x)*sin(y)*(z>L)+Rmin*cos(x)*sin(y)*(z<-L)+ Rmin*sin(y)*((z<L)&&(z> -L));

l3=(L+Rmin*sin(x))*(z>L)+(-L-Rmin*sin(x))*(z< -L)+ z*((x<L)&&(z> -L));

Avec z2[-L,L], y2[0,2�], et x2[0,�/2] .

On d�e�nit le cylindre ext�erieur de la paroi enveloppant la bact�erie et trac�e ici sans les calottes sph�eriques (justepour pouvoir visualiser en vue de dessus les h�elices dans la paroi ..) :

L1 =Rmax*cos(y)*((x< L)&&(x> -L));L2 =Rmax*sin(y)*((x< L)&&(x>-L));

L3 =x*((x< L)&&(x > -L));

Param�etrage de l'h�elice circulaire tournant autour du cylindre de rayon (Rmin+a), de hauteur totale identique(2*L). Le pas de l'h�elice (distance entre deux spires cons�ecutives) est alors donn�e par :

2*lh=2*pi*p(Rmin+ a)2 + h2*sin(�)

si � d�esigne l'inclinaison (suppos�ee ici constante) de l'h�elice par rapport au plan horizontal (c'est-�a-dire parrapport au plan vectoriel vectfe1,e2g) :

f1(z)= r*cos(�+z/h) ;f2(z)= r*sin(�+z/h) ;

f3(z)= z;

On d�e�nit le vecteur�!f par

�!f (z)=

��!OM, si O d�esigne l'origine dur rep�ere cart�esien associ�e et M le point

de coordonn�ees cart�esiennes (f1(z),f2(z),f3(z)) dans ce rep�ere et situ�e sur cette h�elice circulaire ; avec de plus(z/h)2 [��;�] car z2[-L,L] et � �etant un angle de d�epart arbitraire donn�e.

D�eriv�ees partielles premi�eres du vecteur�!f (z) :

_f1(z)= -(r/h)*sin(�+z/h) ;_f2(z)= (r/h)*cos(�+z/h) ;

_f3(z)= 1 ;

D�eriv�ees partielles secondes du vecteur�!f (z) :

�f1(z) = -(r/h2)*cos(�+z/h) ;�f2(z) = -(r/h2)*sin(�+z/h) ;

�f3(z) = 0 ;

25

Page 26: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

D�eriv�ees partielles tierces du vecteur�!f (z) :

...f1(z) = (r/h3)*sin(�+z/h) ;...f2(z) = -(r/h3)*cos(�+z/h) ;...

f3(z) = 0 ;

Calcul de la norme (constante dans ce cas) du vecteur~_f :

k~_fk =q

_f12+ _f2

2+ _f3

2= (1/h)*

pr2 + h2 ;

D�e�nition du vecteur tangent unitaire ~t(z) :

t1(z)=_f1(z)

k~_fk;

t2(z)=_f2(z)

k~_fk;

t3(z)=_f3(z)

k~_fk;

Courbure et torsion (constantes car l'application �z : z 7! �(z) est suppos�ee constante) :

Courbure :

=

q( _f2(z) � �f3(z)� _f3(z) � �f2(z))2 + ( _f3(z) � �f1(z)� _f1(z) � �f3(z))2 + ( _f1(z) � �f2(z)� �f1(z) � _f2(z))2

k~_fk3=2

Dans ce cas, la courbure est constante :

= r(r2+h2) ;

Torsion :

�=( _f2(z) � �f3(z)� _f3(z) � �f2(z)) �

...f1(z) + ( _f3(z) � �f1(z)� _f1(z) � �f3(z)) �

...f2(z) + ( _f1(z) � �f2(z)� �f1(z) � _f2(z)) �

...f3(z))

( _f2(z) � �f3(z)� _f3(z) � �f2(z))2 + ( _f3(z) � �f1(z)� _f1(z) � �f3(z))2 + ( _f1(z) � �f2(z)� �f1(z) � _f2(z))2

Dans ce cas, la torsion est constante :

� =h

r2 + h2

Calcul du vecteur normal unitaire ~n :

n1(z) =�f1(z)

k~�fk;

26

Page 27: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

n2(z)=�f2(z)

k~�fk;

n3(z)=�f3(z)

k~�fk;

[Les termes en (1/ ) se simpli�ent au num�erateur et au d�enominateur]

On obtient en�n le vecteur binormal (unitaire) ~b = ~t ^ ~n ainsi que notre base de Frenet associ�ee �a l'h�elicesouhait�ee ==ft,n,bg .

Maintenant nous param�etrons chaque cercle de centre (f1,f2,f3), de rayon a et inscrit dans le plan normal auvecteur t(f1,f2,f3), vecteur unitaire tangent �a l'h�elice en (f1,f2,f3) :

Soit G un point de ce cercle. On pose ~OG = ~g .

Ses trois coordonn�ees cart�esiennes sont alors :

g1(z,u)= (f1(z)+a*cos(u)*n1(z)+a*sin(u)*b1(z))*((x<L)&&(x>-L));g2(z,u)= (f2(z)+a*cos(u)*n2(z)+a*sin(u)*b2(z))*((x< L)&&(x>-L));g3(z,u)= (f3(z)+a*cos(u)*n3(z)+a*sin(u)*b3(z))*((x<L)&&(x>-L));

Ajoutons �a pr�esent les calottes sph�eriques aux 2 extr�emit�es de notre h�elico��de circulaire ainsi obtenu (le faitque sur les deux extr�emit�es z2 [�L� a � sin(�);�L+ a � sin(�)] est un probl�eme absorb�e par le changement debase), toujours en partant de la base de Frenet:

g1(z,u)= (f1(t,u,n)+a*cos(u)*n1(t,u)+a*sin(u)*b1(t,u))*((x<L)&&(x>-L))+(f1(L,u,n)+a*cos(x-L)*cos(u)*n1(L,u))*(x>L)+(f1(-L,u,n)+a*cos(x+L)*cos(u)*n1(-L,u))*(x<-L)

+a*sin(x-L)*sin(u)*b1(L,u)*(x>L)+a*sin(x+L)*sin(u)*b1(-L,u)*(x<-L)+a*sin(x-L)*t1(L,u)*(x> L)+a*sin(x+L)*t1(-L,u)*(x<-L);g;

g2(z,u)= (f2(t,u,n)+a*cos(u)*n2(t,u)+a*sin(u)*b2(t,u))*((x<L)&&(x>-L))+(f2(L,u,n)+a*cos(x-L)*cos(u)*n2(L,u))*(x>L)+(f2(-L,u,n)+a*cos(x+L)*cos(u)*n2(-L,u))*(x<-L)

+a*sin(x-L)*sin(u)*b2(L,u)*(x>L)+a*sin(x+L)*sin(u)*b2(-L,u)*(x<-L)+a*sin(x-L)*t2(L,u)*(x> L)+a*sin(x+L)*t2(-L,u)*(x<-L);g;

g3(z,u)= (f3(t,u,n)+a*cos(u)*n3(t,u)+a*sin(u)*b3(t,u))*((x<L)&&(x>-L))+(f3(L,u,n)+a*cos(x-L)*cos(u)*n3(L,u))*(x>L)+(f3(-L,u,n)+a*cos(x+L)*cos(u)*n3(-L,u))*(x<-L)

+a*sin(x-L)*sin(u)*b3(L,u)*(x>L)+a*sin(x+L)*sin(u)*b3(-L,u)*(x<-L)+a*sin(x-L)*t3(L,u)*(x> L)+a*sin(x+L)*t3(-L,u)*(x<-L);g;

*****************************************************************************************

Rappel : les auteurs de l'article prennent le huiti�eme d'un cylindre de hauteur L0=4 mm , et emploient comme�el�ements �nis des parall�el�epip�edes avec 20 n�uds d'interpolation; alors que dans notre paroi, les �el�ements�nis sont des t�etra�edres, et on rappelle que la fonction FE solution du probl�eme variationnel, intervenant

27

Page 28: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

dans chaque simulation, sera alors �evalu�ee sur chacun d'entre eux en 10 points d'�evaluation et dans la base despolynomes d'interpolation de Lagrange, qui devront etre localement continues et de type P2.

Les r�esultats des premi�eres simulations num�eriques e�ectu�ees lors de ce stage, qui ne concernent que lapartie �elasticit�e non-lin�eaire de la croissance, montrent que le choix de la valeur du param�etre L, tant qu'ellereste raisonnable, n'est pas �a prendre avec beaucoup de consid�eration vu qu'il n'est, du point de vue num�erique,qu'un simple rapport d'aspect entre la hauteur et le rayon r du cylindre en question.

Hormis les cas o�u il devient vraiment trop important par rapport au rayon r (10, 15, 20 par exemples,comme on le verra apr�es sur les courbes d'erreurs num�eriques), son in uence sur convergence des solveursnum�eriques choisis pour de la r�esolution des probl�emes variationnels, li�es seulement �a l'hyper�elasticit�e de laparoi, reste n�egligeable.

L'in uence du rayon cylindrique r, quant �a elle, n'est pas �a sous-estimer, puisque pour de faibles �epaisseurs,ce qui est le cas dans le mod�ele de la paroi de l'article (� = 10 �m), on doit se ramener �a des �el�ements P1pour la simulation du gon ement hyper�elastique de la paroi (seulement). On doit �egalement dans ce cas pr�ecis,pour pouvoir faire une r�esolution en calcul MPI (8 threads sur le processeur) de ce probl�eme FEM, r�e-ajusterles param�etres d'optimisation �c options, en ajoutant notamment l'option u acs.

L'inconv�enient majeur de notre mod�ele g�eom�etrique de la paroi proviendra �a vrai dire plutot de la con-s�equence qu'engendre l'ajout des 2 calottes sph�eriques sur l'erreur num�erique sur les parties (z>=L) et (z<=-L)

de notre maillage de d�epart bacterie.mesh, lors des calculs de grandeurs physiques ( a, n, S, SA, S

dev, J1,

J2, �, �, symR�et R

�vol essentiellement) d�ecrivant la partie plastique de la croissance de la paroi.

La partie hyper�elastique isotrope de la croissance, �etudi�ee en premier lieu dans ce stage, ne met ensomme pas vraiment en cause le choix de "fermer" le cylindre, l'id�ee �etant en amont d'obtenir un domaineborn�e ferm�e d'une part, et localement lipschitzien d'autre part.

A�n de se rapprocher un petit peu plus de la mod�elisation g�eom�etrique de la cellule v�eg�etale Chara tellequ'elle est d�e�nie dans l'article, on peut utiliser le maillage cylo L=12 delta=0.01.xml, que l'on obtientdirectement sur Fenics (grace aux modules import�es de dol�n, dol�n utils, et aux param�etres/options de

Fenics �c options) en ex�ecutant le �chier d�enomm�e cylo L=12 delta=0.01.py, donn�e en ANNEXE 2 dece rapport.

Ce �chier est disponible �a l'emplacement helice+hyper3+theta+plasticite n Obtention d'un mesh viaFenics du dossier joint au rapport .

On e�ectue donc dans le programme codant le ph�enom�ene d'hyper�elasticit�e de la paroi ( �chier hyper3.py)le changement de conditions de bord P � ~P (cf p.19) pour r 2 [Rmin; Rmax] et z = � L .

On constate alors qu'il n'y a plus convergence du solveur lors du gon ement hyper�elastique dela cellule �a paroi pour ce maillage , en langage Fenics (m�ethodes PETSc) !

L'explication est double :

� D'une part, le bord du domaine n'est plus assez r�egulier car discontinu au niveau des deux sections "libres"en (z = � L && r = Rmax) et en (z = � L && r = Rmin).

� D'autre part, les conditions de bord ne sont plus ni continues ni uniformes puisque ~P � 25*P .

28

Page 29: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Par cons�equent, un corollaire du th�eor�eme de raccord vu en cours (Analyse num�erique des EDP) montreque le probl�eme variationnel n'est plus bien pos�e car l'espace des fonctions polynomiales par morceaux V h

(i.e. l'espace des fonctions FE n'est plus dans H1(), d�es lors que les fonctions FE vh 2 V h ne sont pluscontinues sur :

V h � C() () V h � H1()

o�u d�esigne l'adh�erence du domaine tout entier de la paroi cylindrique (vrai uniquement dans le cas o�u estborn�e).

4. Simulation num�erique du ph�enom�ene d'hyper�elasticit�e .

Les di��erentes simulations num�eriques e�ectu�ees au cours de ce stage, ont �et�e impl�ement�ees en langage Python(version 2.7) pour Fenics (abr�eviation de FEniCS Project) sur le syst�eme d'exploitation Linux.

Python est un langage de programmation interpr�et�e qui, �a la di��erence des langages compil�es tel queC/C++ o�u l'ex�ecution du programme n�ecessite une �etape de retranscription enti�ere du code en langage machine(code binaire) appel�ee "compilation", les instructions donn�ees par l'utilisateur sont "traduites" au fur et �a mesurede la lecture.

The FEniCS Project, ou plus simplement "Fenics", est un logiciel rassemblant di��erentes plateformes :

� DOLFIN, qui est une librairie donnant un ensemble d'algorithmes en C++/Python pour les m�ethodesnum�eriques de r�esolution d'EDP par �el�ements �nis (FEM).DOLFIN permet de communiquer avec des librairies externes telles que PETSc ou MUMPS pour lessolveurs num�eriques , PARmetis et SCOTCH pour le partitionnement des maillages , ou bien MPI etOpenMP pour la calcul parall�elis�e .

� Fenics Form Compiler (FFC), qui permet de compiler dans les formulations variationnelles un langageUFL en langage UFC.

� Uni�ed Form Language (UFL), qui est un code int�egr�e dans Python pour les formulations variationnelles.

� Uni�ed Form-assembly Code (UFC) qui est une interface C++ permettant d'"assembler" les formulationsvariationnelles donn�ees en UFL via le compilateur FFC.

� FIAT (Finite element Automatic Tabulator), pour cr�eer les fonctions de base en �el�ements �nis sur unmaillage donn�e.

Les fonctions-objets employ�ees sur Fenics sont assembl�ees dans un module, appel�e Scipy, qui rassemble bonnombre d'outils utiles pour le calcul scienti�que de mani�ere g�en�erale. Ces fonctions proviennent de biblioth�equesPython et sont �ecrites en langage C a�n d'optimiser les performances d'ex�ecution (calcul HPC). Les objets debase de l'alg�ebre lin�eaire (vecteurs, matrices, tenseurs) proviennent du module Numpy, �egalement cod�e enlangage C.

29

Page 30: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Dans les simulations e�ectu�ees au cours du stage, la principale librairie utilis�ee et adopt�ee, car elle cor-respond au type d'EDP pos�ees dans le probl�eme de croissance des cellules �a paroi, est la librairie externePETSc ("Portable, Extensible Toolkit for Scienti�c computation") qui fournit des algorithmes et des outilsd'optimisation permettant de r�esoudre, �a tr�es grande �echelle, des syst�emes d'�equations aussi bien lin�eaires quenon-lin�eaires.

Les m�ethodes de base employ�ees dans les solveurs num�eriques PETSc utiles dans notre cas (i.e. le casd'�equations non-lin�eaires) sont les m�ethodes de projection dans les sous-espaces de Krylov (GMRES) et, commedans les simulations de l'article, la m�ethode de Newton, mais dans sa version PETSc, c'est-�a-dire avec param�etresd'optimisation ("trust region" ou "line search") dans les descentes de gradient : ce sont les m�ethodes Newtonwith trust region ("newtontr") et Newton with line search ("newtonls") .

Le solveur MUMPS ("MUltifrontal Massively Parrallel Solver") a �et�e utile, dans le cadre de ce probl�eme,pour optimiser le pr�e-conditionnement du syst�eme dans chaque simulation. En e�et, ce solveur est utilis�e pourla r�esolution de syst�emes lin�eaires de la forme A x = b, o�u A est une matrice pouvant etre creuse ou pleine,sym�etrique ou non sym�etrique, d�e�nie positive ou non d�e�nie positive (cas standards).

Rappel sur le pr�e-conditionnement :

Pr�e-conditionnement �a gauche :

M A x = M b

o�u M est une approximation de A�1

Pr�e-conditionnement �a droite :

A M ~x = M b , avec x =M ~x.

Si M admet une facorisation L Lt, alors les valeurs propres de M A sont celles de Lt A L (admis) , et on estramen�e �a r�esoudre le syst�eme suivant :

Lt A L ~x = Lt b , avec x= L ~x .

L'int�eret d'utiliser MUMPS dans le pr�e-conditionnement provient du fait que cette technique de r�esolution desyst�emes lin�eaires se base exclusivement sur les factorisation, optimis�ee via un calcul parall�ele sur di��erentsprocesseurs, de type LU et de type LDLT .

Le pr�e-conditionneur MUMPS, optimal pour le type d'EDP qui nous concerne, est utilis�e dans une techniquede r�esolution PETSc qui sera la m�ethode de r�ef�erence employ�ee dans la plupart de nos simulations :

la m�ethode newtontr ("newton with trust region" ou m�ethode de Newton �a r�egion de con�ance).

La m�ethode newtontr est souvent employ�ee dans le cas g�en�eral des m�ethodes de Newton d'ordre �elev�e, �a l'instard'une autre m�ethode appel�ee m�ethode quasi-Newton qui peut s'av�erer plus e�cace lorsque l'ordre (c'est-�a-direle nombre de d�eriv�ees qu'on doit calculer �a chaque it�eration) augmente vite et devient trop important .

La m�ethode newtontr permet de se ramener �a un domaine born�e autour de la solution approch�ee xk et der�eduire, de mani�ere souvent rapide, le diam�etre �k au fur et �a mesure du proc�ed�e apr�es chaque it�eration k.

Le probl�eme est donc de savoir quelle fonctionnelle veut-on annuler par la m�ethode de Newton (�a r�egionde con�ance) d�es lors qu'il s'agit d'un syst�eme non-lin�eaire d'�equations �a r�esoudre dans Rn ?

C'est �a ce niveau de la r�esolution du syst�eme d'EDP qu'interviennent alors les m�ethodes de Krylov.

M�ethodes de Krylov :

Les m�ethodes de Krylov sont des m�ethodes de r�esolution it�eratives d'un syst�eme lin�eaire de dimension n :

A.x = b : (L)

o�u A est une matrice carr�e inversible de dimension n ,via des projections orthogonales dans des sous-espaces vectoriels particuliers : les espaces de Krylov .

30

Page 31: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

En notant x0 une solution approch�ee de la solution x du syst�eme lin�eaire (L) , on associe le vecteur r�esidu g0 =A.x0-b . On appelle espace de Krylov d'ordre p et on note Kp, pour p2 N�, l'espace vectoriel g�en�er�e par g0 etses (p-1) produits it�er�es par A :

Kp=vectfg0, A.g0,..., Ap�1.g0gLa famille (Kp)p2N� est croissante de p=1 jusqu'�a un certain p=pmax, qui correspond dimension maximale dechacun des Kp, puis stationnaire pour p � pmax (x0 �x�e).La famille (g0, A.g0,..., A

pmax�1.g0) �etant libre, il existe un (pmax-1)-uplet (�0; �1, .... , �pmax�1) tel que :

Apmax :g0 =

pmax�1Xk=1

�kAk:g0 (1)

De ce fait, le terme �0 ne peut etre nul, derechef par ind�ependance lin�eaire des vecteurs de la base naturelle(Ap�1.g0)1�p�pmax des Kp , car sinon on aurait :

Apmax�1.g0=Ppmax�1

k=1 � k Ak�1. g0

L'�egalit�e (2) peut alors s'�ecrire sous la forme suivante :

A:(x0 +

pmax�1Xk=1

�k�0Ak�1:g0 � 1

�0Apmax�1:g0) = b (2)

La solution x du syst�eme lin�eaire (L) est donc contenue dans l'espace a�ne x0+Kpmax ,et l'espace vectoriel Kpmax est le point de stagnation de la suite (Kp)p2N� .

R�eciproquement : x2x0+Kpmax =) (Ap�1.g0)1�p�pmax est une base des Kp .

Pour �eviter la divergence num�erique inh�erente �a la base naturelle (Ap�1.g0)1�p�pmax des espaces de Krylov,on construit, via le proc�ed�e classique d'orthonormalisation de Gram-Scmidt pour le produit scalaire euclidien,la base d'Arnoldi :

g0 = A.x0-b

v1 =v0k v0 k

Pour j � 1, w = A.vj-Pj

i=1((A:vj):vi) � vi o�u ( . ) d�esigne le produit scalaire euclidien, puis :

vj+1=w

k w kCe qui peut s'�ecrire matriciellement sous la forme :

A.vj=Pj+1

i=1 hij � viavec hj+1;j= k w k et hij= ((A.vj):vi) pour 1 � i � j

Notons Vp la matrice �a n lignes et p colonnes , dont les p colonnes sont les p premiers vecteurs de la based'Arnoldi, et Hp+1;p la matrice �a (p+1) lignes et p colonnes compos�ee des hij d�e�nis plus haut pour i� j+1 etde z�eros pour i >j . On a alors :

Vtp.Vp = Ip

Ip �etant la matrice identit�e d'ordre pA.Vp= Vp+1.Hp+1;p

En notant Hp le bloc diagonal de Hp+1;p, on a :

Vtp.A.Vp= Hp

Hp est une matrice dite de forme Hessenberg sup�erieure .

Construction de la base de Lanczos dans le cas A sym�etrique :

31

Page 32: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Dans le cas o�u A est une matrice (r�eelle) sym�etrique, il r�esulte que Hp l'est aussi, et comme elle est de formeHessenberg sup�erieure, Hp est une matrice tridiagonale sym�etrique . Comme hj�1;j=hj;j�1 et que hij=0 pouri < j-1 et i >j+1, la base d'Arnoldi se simpli�e dans ce cas en une base appel�ee base de Lanczos.

Si Vp est une base de l'espace de Krylov Kp �a l'it�eration p, une solution approch�ee du syst�eme lin�eaire (1)s'�ecrit alors sous la forme :

xp = x0+Vp.zp

o�u zp est un vecteur de dimension p.

A l'it�eration p, les vecteurs erreur et r�esidu s'�ecrivent :

ep=xp- x0=e0+Vp.zpgp= A.xp- b = g0+A.Vp.zp

Si A est sym�etrique d�e�nie positive, la m�ethode de Lanczos consiste �a minimiser la norme de l'erreurpour la norme subordonn�ee �a A :

k xp � x k2A = (A.(xp-x).(xp-x)) = (gp.ep)

Ainsi la solution approch�ee xp pour la m�ethode de Lanczos est la projection orthogonale de xsur l'espace a�ne x0+Kp pour le produit scalaire associ�e �a la matrice A du syst�eme (L).

Comme (xp-x) 2 Kp, le vecteur r�esidu gp est orthogonal �a Kp .

Dans le cas A sym�etrique d�e�nie positive, la fonctionnelle quadratique J(x) =1

2(A.x,x) - (b.x) est strictement

convexe et born�ee inf�erieurement . Elle admet un minimum global, qui est x la solution du syst�eme (L).

Minimiser le produit scalaire (gp.ep) dans ce cas revient alors �a minimiser le terme :

1

2(Tp.zp.zp) + (yp:zp )

avec Tp=VtpA Vp et ypi=(vi.g0), 8i 2 f1; ::; ng

Le minimum est donc atteint en xp = x0+Vp.zp avec zp solution de :

Tp.zp= - yp

La matrice Tp est tri-diagonale sym�etrique d�e�nie positive (car A sym�etrique d�e�nie positive) , elle admetune factorisation de Crout ou factorisation LDLT (vu en TD d'Analyse num�erique des EDP, en M1 M.M.S. �al'UPPA) :

Tp= LpDpLtp

o�u Lp est une matrice triangulaire inf�erieure bi-diagonale avec des coe�cients �egaux �a 1 sur la diagonale.

En �ecrivant la d�ecomposition matricielle LDLT sous la forme suivante :

Tp = (Tp�1

0 ... tp;p�1

0...

tp�1;ptpp

) = (Lp�1

[0 ::: lp;p�1]

0...01

) * (Dp�1L

tp�1

[0 ::: 0]

0...

up�1;pdp

)

32

Page 33: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

(Veuillez bien excuser le style de police employ�ee ci-dessus, mais la fonction assistant matrice de la versionTexmaker employ�ee(5.6.2) ne met apparemment pas de parenth�eses (?) autour des �el�ements de la matrice. Leseul produit matriciel est donc au niveau du symbole * dans l'expression de Tp ci-dessus, et entre les parenth�eseson a donc une seule et meme matrice carr�ee d'ordre p d�ecompos�ee en blocs �a chaque fois) .

On a ensuite par identi�cation dans l'�ecriture de Tp ci-dessus:

up�1;p = tp�1;p,lp;p�1 = tp;p�1/dp�1 et dp = tpp - lp;p�1 � up�1;p.

De meme pour le terme de droite yp, on calcule seulement sa derni�ere coordonn�ee yp(p) = (vp.g0),puisque ses (p-1) premi�eres coordonn�ees sont celles du vecteur yp�1.

L'it�eration p de la m�ethode de Lanczos consiste �a d�eterminer la derni�ere composante du vecteur yp ,calculer yp+1 et �a compl�eter la factorisation de Crout de Lp �a partir de celle de Lp�1 selon l'algorithme :

yp(p) = (vp:g0)w = A.vp

w = w - tp;p�1vp�1tpp = (w:vp)w = w-tppvptp+1;p =k w kvp+1 = 1=tp+1;p

lp;p�1 = tp;p�1=dp�1dp = tpp � lp;p�1tp;p�1

Inconv�enient majeur de la m�ethode de Lanczos : l'algorithme impose de conserver tous les vecteurs dela base �a chaque it�eration, ce qui fait augmenter lin�eairement le nombre de donn�ees et d'op�erations �a chaqueit�eration .

M�ethode GMRES

Lorsque la matrice A est quelconque, le matrice Hp d�e�nie plus haut n'est plus n�ecessairement tridiagonale .On cherche �a minimiser le carr�e de la norme du vecteur r�esidu :

R(xp) = (A(xp-x), A(xp-x)) = k xp - x k2AtAL'algorithme de base de la m�ethode General Minimal RESidual (GMRES) consiste, en principe,�a calculer la base d'Arnoldi, �a e�ectuer une factorisation QR de la matrice H, puis �a d�eterminerle vecteur y .

Une autre version de GMRES, appel�ee ORTHODIR, consiste plus simplement �a construire une base Wp, quisoit AtA-orthogonale, de K p et telle que la projection W

tp A

t A Wp soit diagonale. Le processus de constructionde la base d'Arnoldi est toujours celui de Gram-Schmidt , en se r�ef�erant dor�enavant au produit scalaire associ�e�a At A :

g0 = A x0 - bw = g0

v = A w , w1 =w

k v kA w1 =

v

k v k

Pour p> 1 :

w = A wp�1

v = A w

Pour i entre 1 et p e�ectuer:

33

Page 34: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

�i = (v, Awi)w = w - �i viv = v - �i A wi

wp =w

k v kA wp =

v

k v kLa solution approch�ee xp et le vecteur r�esidu gp sont alors donn�es par :

xp = xp�1 + �p wp

gp = gp�1 + �p A wp

Comme (xp-x)2 K p , il vient que gp est orthogonale �a A K p ce qui se traduit par :

(gp, Awp) = (gp�1, Awp) + �p (Awp, Awp) =0 : (19)

Comme k wp kAtA = 1, il vient que le coe�cient de descente est simplement donn�e par :

�p = - (gp�1, Awp) : (20)

Pr�e-conditionnement :

Comme on l'a vu plus haut , si la matrice de pr�e-conditionnement M (approximation de A�1) admet unefactorisation L*Lt, alors on a :

Lt A L ~x = Lt b , avec x= L ~x .

On a du coup, d'apr�es l'algorithme ci-dessus, la correspondance suivante :

xp = L ~xp~gp = Lt gp

On est ramen�e ainsi, pour chaque it�eration p, �a r�esoudre 2*(p+1) syst�emes triangulaires.

Finalement, les �equations (19) et (20) donnent donc l'�equation �a r�esoudre ainsi que la pente �a minimiser parla m�ethode de Newton.

Rappel : de mani�ere g�en�erale, le pr�e-conditionnement permet d'accro�tre la vitesse de convergence d'unem�ethode it�erative.

La vitesse de convergence d�epend essentiellement du conditionnement, not�e cond(A), de la matrice A dusyst�eme lin�eaire �a r�esoudre. Ce terme est d�e�ni par :

cond(A) = k A k k A�1 k

Le passage de la m�ethode GMRES "lin�eaire" �a la m�ethode GMRES "non-lin�eaire" s'op�ere par l'introductiond'un param�etre 2 [0; 1] et d'une fonction f : [0; 1] �! Rn d�ependant du param�etre appel�ee application-chemin, de telle sorte qu'en = 1 on soit dans le cas non-lin�eaire et en = 0 on soit dans le cas lin�eairedu syst�eme d'�equations �a r�esoudre : F(x) = 0 (F(x) = g(x) dans le cas lin�eaire). On calcule ensuite, via desd�eveloppements de Taylor, des "d�eriv�ees successives de l'�equation", v�eri��ee par F(x), x, et y( ), en = 0.

On est alors amen�e �a r�esoudre par la m�ethode de Newton l'�equation F(x) = 0 non plus en projetant sur lesous-espace de Krylov Kp d�e�ni plus haut, mais sur un autre sous-espace similaire correspondant aux coe�cientsy(k)(0) du d�eveloppement de Taylor de y en 0, k 2 [0; d], jusqu'�a une certaine dimension maximale de cet espacenot�ee dmax , qui doit etre choisie, comme dans le cas GMRES "lin�eaire", avec red�emarrage possible (commandeksp gmres restart sur les options PETSc) c'est-�a-dire qu'on relance la m�ethode GMRES �a partir d'un certainindice d=dmax si on est toujours au dessus de la tol�erance choisie par l'utilisateur pour r�esoudre le probl�eme demoindres carr�es �nal suivant :

Minimiser kF (x0 + 0yi(0) + 1y0

i(0) + :::+ dydi (0))k2

�a chaque �etape i .

34

Page 35: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Ce passage est tr�es bien d�etaill�e dans l'article intitul�e R�esolution de grands syst�emes d'�equations : du lin�eaireau non lin�eaire via des d�eriv�ees successives, co-r�edig�e par Sandrine BARGIACCHI et Mohamed MASMOUDI.

Le recours �a l'option ksp gmres restart lors de l'emploi de cette m�ethode est justi��ee par le fait que le coutde l'algorithme GMRES cro�t lin�eairement avec le nombre d'it�eration ! D'o�u l'int�eret capital d'avoir �egalementun bon pr�e-conditionneur, obtenu dans le cas du logiciel Fenics grace au solveur MUMPS.

La m�ethode GMRES en version "non-lin�eaire" revient en fait �a utiliser, pour chaque it�eration et en termede cout, la m�ethode de Newton dans le cas GMRES "lin�eaire" lorsqu'on projette le vecteur r�esidu sur l'espacede Krylov Kd+1.

Ainsi que nous l'avons dit plus haut, l'utilisation de l'option "with trust region" ("�a r�egion de con�ance"en fran�cais) pour la m�ethode de Newton est justi��ee lorsque d peut etre �elev�e .

Il s'agit simplement de d�e�nir, pour le coe�cient de descente �i (cf equation (20)), un diam�etre maximum�i autour de xi �a chaque it�eration i, �a partir du calcul de matrices hessiennes essentiellement.

Ce diam�etre d�ecro�t apr�es la r�esolution pour chaque it�eration k du probl�eme sous contrainte suivant :

minmks2Rn

(xk+s) = F(xk) + rF(xk)t s + 1

2st Hk s : (21)

avec la contrainte : k s k � �k

o�u F est la fonctionnelle associ�ee au syst�eme non-lin�eaire que l'on souhaite minimiser, H est la matrice Hessiennede F, et mk est appel�ee fonction mod�ele quadratique �a l'it�eration k.

Pour conna�tre le cadre g�en�eral de l'algorithme de r�esolution (probl�eme (21) lin�earis�e sous certaines conditionspuis calcul du point de Cauchy) de ce sous-probl�eme de minimisation de la fonction quadratique mk �a chaque�etape k de la m�ethode newtontr, on peut consulter l'article de Claude LONGCHAMP intitul�e Optimisationnum�erique ; M�ethode de la r�egion de con�ance ; Chapitre 4.1 et 4.2*; 15 octobre 2009 .

Apr�es cette rapide pr�esentation de la m�ethode adopt�ee et de l'espace dans lequel elle s'applique, venons-enaux �equations r�egissant le gon ement uniforme d'une cellule �a paroi.

Nous tenons pas compte, dans ce paragraphe, des propri�et�es plastiques de la paroi.

La s�equence donn�ee dans analytic solution.py permet d'obtenir analytiquement l'extension radialed'une cellule �a paroi cylindrique lorsque l'on gon e la cellule.

Ce �chier est donn�e �a l'emplacement helice+hyper3+theta+plasticite n code hyperelastique+heliceFreeFem++ n codehyperelastique n code analytique n solanalytique C du dossier joint au rapport.

Nous souhaitons tout de meme expliquer rapidement ici les notations et calculs e�ectu�es lors de cettes�equence.

La s�equence cod�ee dans le �chier analytic solution.py est bas�ee sur le th�eor�eme d'Eriksen, dont uned�emonstration est donn�ee dans le livre Non-Linear Elastic Deformations de R.W. Ogden, publi�e en 1998.

Le cas �etudi�e , celui d'un cylindre subissant une action de pression interne, est d�evelopp�e au paragraphe 5.2.3,page 267 du livre cit�e plus haut.

Soit C0 le cylindre de base le disque de rayon R , inscrit dans le plan z = - L, de centre O, origine du rep�erecart�esien canonique associ�e �a l'espace r�eel R3, et de hauteur 2*L .

A l'instant t=0, le cylindre est au repos , et on note (R, �0, Z) les coordonn�ees cylindriques d'un pointquelconque M0 de ce cylindre C0 .

35

Page 36: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

On suppose que le cylindre C0 est un solide �elastique homog�ene isotrope, et qu'il est soumis uniform�ement�a l'action d'une pouss�ee int�erieure Pa ( prise �a 0.05 MPa pour la comparaison num�erique des solutions

analytique et "variationnelle" ) sur l'ensemble de sa surface int�erieure Sint = �intR [ �intL [ �int�L , o�u �intR est lapartie radiale int�erieure du cylindre et �int�L d�esigne les deux bords int�erieurs du cylindre (c'est-�a-dire les 2

disques de rayon R et centr�es en (0,0, z =�L) ).

Le th�eor�eme d'Eriksen �etablit alors que, pour un instant t>0 quelconque, les coordonn�ees cylindriques(r,�, z) du point Mt2 Ct image du point M02 C0 sont n�ecessairement celles d'une d�eformation homog�ene,

i.e. ses coordonn�ees sont n�ecessairement de la forme:

r = R*f(R) ;� = �0 ;

z = �3* Z ;

o�u �3 est le taux d'�elongation du tube cylindrique.

Le tenseur gradient de d�eformations A associ�e �a la matrice Jac' =@(r; �; z)

@(R; �0; Z)(matice jacobienne associ�ee

�a l'application, not�ee ', transformant C0 en C) est alors donn�e par :

A = �1*�!e r

N�!e R + f(R)*�!e �

N�!e �0 + �3*�!e z

N�!e Z + �3*r*�!e �

N�!e Z

o�u �1 = f(R) + R*f'(R) et �2 = f(R) sont les deux premi�eres contraintes principales, la troisi�eme contrainteprincipale �3 �etant �egale �a �2 dans cette s�equence.

On rappelle qu'une d�eformation est homog�ene si et seulement si r(A) = 0 .

Le tenseur de Green-Lagrange C est d�e�ni par :

C = At *A

On d�e�nit la fonction �energie de d�eformation W par :

W =� � (tr(C)� 3� 2 � ln(J))

2

avec J = �1 � �2 � �3 = �1 � �22 (jacobien associ�e �a la d�eformation).

Ses d�eriv�ees partielles premi�eres et secondes sont :

@W

@�1= � � (�1 � 1

�1) ,

@2W

@�21= � � (1 + 1

�21)

@W

@�2= � � (�2 � 1

�2) ,

@2W

@�22= � � (1 + 1

�22)

@2W

@�1@�2=

@2W

@�2@�1= 0

Par suite le principe fondamental de la dynamique �a l'�equilibre en l'absence de terme de source (�!f =

�!0 ) s'�ecrit:

div(�) =�!0 : (22)

36

Page 37: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

o�u � est le tenseur de contraintes de Cauchy (not�e T dans le livre de R.W. Ogden),et dont les 3 valeurs propres sont �1; �2 et �3 .

En posant :

I1 = �1 + �2 + �3I2 = �1 � �2 + �2 � �3 + �1 � �3

I3 = �1 � �2 � �3� est alors donn�e par la relation suivante :

� =P3

i=1

@W

@Ii� @Ii@A

De plus, les polynomes sym�etriques de Lagrange Ii, i.e. les valeurs propres �i pour i 2 f1; 2; 3g dans ce cas,ne d�ependent que du rayon R.

L'�equation (22) peut alors, de ce fait, etre simpli��ee, et, dans le cas standard du "gon ement uniforme" d'uncylindre �elastique, homog�ene et isotrope, elle se simpli�e de la mani�ere suivante:

@2W

@2�1�R � f 00(R) + 2 � (@

2W

@2�1+

@2W

@2�1�2) � f 0(R) + (

@W

@�1� @W

@�2) � 1

R= 0 : (23)

Le d�eterminant du tenseur de Cauchy � est donn�e par :

det(�) = �1 � �2 � �3= �1 � �22 = (R*f'(R)+f(R))*f(R)2= J

En posant :

t1 =@W

@�1

t2 =@W

@�2

On obtient ainsi, en identi�ant �1 dans l'�equation (23), une simpli�cation suppl�ementaire de l'�equation (22)

(pour la d�eformation homog�ene d'un tube cylindrique isotrope) :

@t1@R

+t1 � t2R

= 0 : (24)

Dans le �chier analytic solution.py , on �ecrit alors :

d = delta (R,y) =

t1 � t2R

+ 2 � @t1@�1� y[1]

R � @t1@�1

avec �1= R*y[1]+y[0] = R*f'(R) + f(R) et �2 = y[0] = f(R)

puis :

f'(R) = y[1]

f"(R) =@(y[1])

@R= - delta(R,y) = - d

i.e.dy

dR= y' = ( y[1] �d )

avec y = ( y[0] y[1] ) = ( f(R) f 0(R) ) = ( �2 f 0(R) )

37

Page 38: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

La fonction sur Python (version 2.7) nomm�ee scipy.integrate.solve bvp permet de r�esoudre cette �equationdi��erentielle ordinaire (EDO ou ODE en anglais) pour obtenir ensuite f(R) (= y[0]) via la fonction

bc : (ya,yb)7!bc(ya,yb) qui permet d'imposer les conditions aux limites relatives au probl�eme pos�e sur le borddu domaine d�e�ni (a=Rmin et b=Rmax pour cette EDO, qui se trouve ainsi ramen�ee, dans ce cas, �a l'espace

de Sobolev H1=200 [a,b] : une telle EDO est appel�ee, en anglais, ordinary di�erential equation calibrated ou ode

calibrated ) .

La fonction bc : (ya,yb)7!bc(ya,yb) impl�emente s�epar�ement sur chacun des bords l'annulation d'unefonctionnelle donn�ee par l'utilisateur, �equivalente aux conditions de bords, en fonction des param�etres d'entr�ee

ya (pour R=a=Rmin) et yb (pour R=b=Rmax) .

/////////////////////////////////////////////////////////////////////////////////////////////////////////

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 1000 points (cylindre):

[[ 0.00042905] [ 0.00046546]]

(Pour l'ex�ecution du �chier python 'analytic solution.py' avec : tol = 1e-14

Pa = 0.05 ( valeur de d�epart pour 'hyper3.py') )

Nota bene : pour Pa en dehors (plus ou moins) de l'intervalle [-3.8 , 10.5] la solution diverge ainsi que lesconditions de bord.

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 500 points (cylindre):

[[ 0.00042905] [ 0.00046546]]

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 350 points (cylindre):

[[ 0.00042905] [ 0.00046546]]

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 300 points (cylindre):

[[ 2.60902411e-14] [ 2.23098868e-14]]

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 250 points (cylindre):

[[ 7.08183512e-14] [ 2.23098868e-14]]

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 100 points (cylindre):

[[ -1.84990911e-14], [ 2.23098868e-14]]

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 75 points (cylindre):

[[ 2.61110578e-14] [ 0.00000000e+00]]

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 50 points (cylindre):

[[ -1.84643967e-14] [ 0.00000000e+00]]

38

Page 39: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

AFFICHAGE DES CONDITIONS DE BORDS VIA LA FONCTION bc(ya,yb) avec 25 points (cylindre):

[[ -1.83950077e-14] [ 0.00000000e+00]]

CONCLUSION : on voit que de 25 �a 300 points, le pas radial de discr�etisation est convenable , et que 100points est une bonne discr�etisation que l'on prendra pour le rayon R surtout pour l'erreur relative.Par ailleurs, pour Pa en dehors de l'intervalle [-3.8 , 10.5], nous ne sommes plus dans le bon espace de Sobolevet la solution devient instable.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

Nota bene : comme z = �3 Z et que �2 = �3 , la fonctionu(R)

R= j (1��2(R)) j (cf Figure 5) donne le taux

d'�elongation du tube cylindrique (i.e.�L

L) en fonction de la coordonn�ee radiale R d'un point quelconque

de la paroi au cours du "gon ement" du cylindre.

Num�eriquement, on a donc, d'apr�es la solution analytique,�L

L� 0.0025 (�a 2*10�4 pr�es). Pour L = 2 mm (L

est num�eriquement un rapport d'aspect : 4*0.5 = 2*1 = 2), ce qui revient en fait au cas L = 4mm de l'article,cela fait environ 5 �m d'�elongation (au total) de la cellule soit 2.5 �m environ sur chaque extr�emit�e.

Cependant, nous avons fait ici le choix, pour a�ner radialement l'�evaluation des valeurs propres de la solutionanalytique, de prendre une �epaisseur plus raisonnable (0.1 mm au lieu de 0.01 mm) et un rayon �egal au doublede celui de l'article (1 mm au lieu de 0.5 mm ).

Pour une tr�es faible �epaisseur telle que celle adopt�ee dans l'article il faut ensuite passer en �el�ements P1(dans le code FEM sur Fenics, via la fonction d'optimisation u acs) pour pouvoir faire ensuite une comparaison"solution analytique/solution num�erique", ce qui diminue la pr�ecision de l'erreur, sachant que le param�etreimportant dans la partie hyper�elastique du processus de croissance est le rapport d'aspect L et non l'�epaisseurde la paroi, lorsqu'on veut �evaluer l'�elongation purement �elastique de la cellule, c'est-�a-dire la partie 3 del'�elongation de la cellule obtenue num�eriquement, 3 �m environ sur chaque extr�emit�e de la cellule r�eelle (leurmaillage concerne (1/8)�eme du cylindre de base), par les auteurs de l'article (cf Fig. 12. b) , x 5.2.2. , p.774,Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker,I.A. Jones).

La di��erence observ�ee est donc a priori d'environ 0.5 �m sur chaque extr�emit�e soit 1 �m au total, ce quicorrespond en fait �a l'�elongation simul�ee lors de la partie 2 du processus apparaissant sur la meme �gure (Fig.12. b)), et donnant l'�elongation irr�eversible de la paroi �a chaque gon ement (cette �gure �evalue l'�elongationen tenant compte aussi bien de l'�elasticit�e que de la plasticit�e de la paroi lors de son processus de croissance) .

Ainsi, du point de vue Physique comme du point de vue num�erique, les valeurs propres obtenues pour"notre" solution analytique (cf Figure 6) et les donn�ees des simulations num�eriques fournies par les auteurs del'article semblent bien concorder.

Dans le �chier analytic solution.py , on peut faire varier le param�etre de tol�erance tol de la fonctionsolve bvp de la librairie Scipy de Python (version 2.7) et estimer ainsi la pr�ecision num�erique de la solutionobtenue par ce solveur d'EDO, �a partir de celle de la fonction bc imposant les conditions de bord, lors de lar�esolution des deux �equations, d�etaill�ees plus haut, d'inconnues y[0] et y[1] (cf Figure 7).

�A l'emplacement du dossier joint suivant : helice+hyper3+theta+plasticite n code hyperelas-tique+helice FreeFem++ n codehyperelastique n code analytique n solanalytique C se trouvent

39

Page 40: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Figure 5: �Elongation radiale analytique : u analytique = u(R)

Figure 6: Valeurs propres analytiques �1 = R*f'(R)+f(R) et �2 = f(R)

Figure 7: u analytique = u(R) selon le param�etre de tol�erance tol sur les conditions de bords .

40

Page 41: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

des agrandissements de la Figure 7 donnant plus ou moins l'ordre de tol�erance d'erreur num�erique convenablepour les conditions de bord dans la fonction bc. On voit alors que pour tol � 10�10 est un seuil de tol�eranceconvenable car l'"erreur machine" est en 10�15.

Formulation variationnelle et simulation num�erique de l'hyper�elasticit�e de la paroi d'une cellule :

Formulation faible de l'�equation d'�equilibre statique (Div(�) = 0) sur B0 :

Elle s'obtient simplement en se rappelant (cf Brefs rappels de M.M.C., page 11) que le premier tenseur dePiola-Kirchlo� � = � (F�1)t , d�e�ni sur la con�guration initiale de la paroi B0, v�eri�e alors :

�(�!n0)*dS0 = �(�!nt)*dSto�u

n0 est la normale unitaire sortante �a un �el�ement surfacique dS0 de 0, �a l'instant initial t=0 .

nt est la normale unitaire sortante �a �a un �el�ement surfacique dSt de t , �a l'instant t>0 .RB0

�:r0v dV0 -RB0

f.v dV0 -R@B0

t.v dS0 = 0

o�u v est une fonction test (au sens des distributions) �a prendre dans l'espace de Sobolev H1(B0).

Elle correspond physiquement �a un d�eplacement virtuel.

f et t repr�esentent respectivement les forces volumiques et surfaciques s'appliquant sur la con�guration B0 .

Dans le cadre de notre mod�ele, il n'y a pas de terme de source (f = ~0)

Par suite, le tenseur de contraintes de Cauchy � �etant sym�etrique, le tenseur � = J*� l'est aussi, et le produitcontract�e �a gauche de la formulation faible ci-dessus s'�ecrit alors :

� : r0v = � : (r0v.(F�1)t )

Dans la s�equence �ecrite en Python pour Fenics du �chier hyper3.py, donn�ee en ANNEXE 3, nous pr�ef�eronsdonner le code, simple dans ce cas, dans son int�egralit�e pour bien mettre en �evidence les param�etres quichangeront lorsque l'on ajoutera apr�es les �bres dans la coque cylindrique.

La m�ethode Newton �a r�egion de con�ance s'av�ere alors d'une e�cacit�e optimale, surtout dans ce cas, ainsique l'atteste la Figure 8, o�u sont superpos�ees la solution analytique (avec tol = 10�14) et la solution FE del'�elongation radiale du cylindre par cette m�ethode, aussi bien en terme de pr�ecision num�erique qu'en termede temps de convergence (environ 6 minutes) de de la m�ethode PETSc newtontr optimis�ee par les param�etreslaiss�e en �evidence dans le code en ANNEXE 3 !

On trouvera en pi�ece jointe �a ce rapport �a l'emplacement : helice+hyper3+theta+plasticite n code hy-perelastique+helice FreeFem++ n codehyperelastiquen code fenicsn codes Fenics hyper�elasticit�en cv hyper3 n hyper3vsParam�etres PETSc, les donn�ees les r�esultats de temps de simulation en fonctiondes pr�e-conditionneurs (ESSL et MUMPS optimaux), des param�etres d'optimisation et des autres m�ethodesFEM de la librairie PETSc .

En pi�ece jointe �egalement, dans le dossier helice+hyper3+theta+plasticite n code hyperelastique+heliceFreeFem++ n codehyperelastique n comparaison analytique numerique n compare errorvsL, setrouve une liste de courbes d'erreur relative de la meme simulation pr�ec�edente mais avec des valeurs de Lvariables .

41

Page 42: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

On constate alors que, pour une meme subdivision radiale de 100 points, l'erreur num�erique optimale estde 0.18 pour cent si L=4.5, soit quasiment la meme que celle obtenue dans le cas de r�ef�erence du gon e-ment de la sph�ere, o�u l'erreur num�erique est, dans nos simulations (voir courbes d'erreur dans le dossier he-lice+hyper3+theta+plasticite n code hyperelastique+helice FreeFem++ n codehyperelastique ncomparaison analytique numerique n error sphere ), de 0.14 pour cent !

On notera que la courbe d'erreur dans le cas L = 4.5 pr�esente �egalement la meme sym�etrie radiale, le longde l'�epaisseur de la paroi, que celle du cas de la sph�ere qui est le cas de r�ef�erence en tant qu'erreur num�eriqueoptimale du point de vue Physique en hyper�elasticit�e .

Le code de la solution analytique du gon ement isotrope de la sph�ere (seul change, par rapport au cylindre,le facteur 2 devant f'(R) dans l'�equation (23)) est donn�e dans le dossier joint helice+hyper3+theta+plasticiten code hyperelastique+helice FreeFem++ n codehyperelastique n code fenics n codes Fenics hy-per�elasticit�e n hyper3 sphere .

Les courbes d'erreur num�erique obtenues dans le cas de la sph�ere, en fonction du nombre de pointsde discr�etisation de l'�epaisseur, sont donn�ees dans : helice+hyper3+theta+plasticite n code hyper-elastique+helice FreeFem++ n codehyperelastique n comparaison analytique numerique n er-ror sphere .

Sinon, pour les autres valeurs de L raisonnables (i.e. 0�L�10), l'erreur est de quelques pour cent, et pourla valeur L=1 on obtient une bonne erreur avec environ 2.18 pour cent .

Ainsi en dehors du cas particulier L=4.5, qui est le plus proche de la sph�ere, on obtient une bonne erreurrelative dans les cas suivants :

L=1.05 (2.36/100), L=1 (2.18/100), L=0.95 (1.74/100), L=1.35 (0.7/100), L=1.95 (1.278/100), L=2(0.77/100, cf Figure 9), L=2.05 (0.85/100), L=2.5 (1.9/100), L=3.5 (1.394/100),

et, r�esultat int�eressant aussi, pour L2[4; 4:95] (on incr�emente L de �L=0.1 �a chaque simulation) l'erreur estcomprise entre 0.18/100 et 2.3/100 , avec quatre cas en dessous de 1/100 (L=4.05, L=4.25, L=4.5, L=4.85).

On notera �egalement, dans le cas optimal L=4.5, que l'erreur est relativement stable lorsqu'on augmente lenombre de pas de discr�etisation de l'�epaisseur (100 points au d�ebut, puis on teste 250, 400, 500, 750 points o�ul'erreur passe de 0.18/100 �a seulement 0.34/100), ce qui est donc un bon r�esultat !

[Dans le cas de la sph�ere, l'erreur est divis�ee par 2 (soit 0.09/100 environ) lorsqu'on a�ne la subdivision del'intervalle [Rmin, Rmax], pour les points de r�esolution et d'�evaluation de l'erreur relative]

On observe ainsi, "exp�erimentalement", une stabilit�e de la m�ethode employ�ee lorsqu'on prend un rapportd'aspect convenable, c'est-�a-dire dans le cas o�u L2[0:95; 4:95], puisque au del�a de L=5 ceci n'est plus le cas(lorsque Rmin = 1 et Rmax = 1.1 dans nos tests) .

�A l'emplacement helice+hyper3+theta+plasticite n hyper3 base+calcul de theta+plasticite nbalayage mesh+gon ement du dossier joint, un programme de "balayage" permet de simuler un gon ementhyper�elastique (sans �bres) automatiquement �a partir des param�etres d'entr�ees suivants : choix du maillage,valeurs de L,de N (subdivision du rectangle initial Th) et surtout le facteur hh (plus important) pour la nouvellem�etrique dans le maillage de d�epart bacterie.mesh.

On pourra pour la simulation �nale, y ajouter plus tard les termes de plasticit�e et le r�e-employer pour unecomparaison de performance de calcul entre FENICs Project et C++ dans ce probl�eme.

Un autre �chier, �a l'emplacement helice+hyper3+theta+plasticite n hyper3 base+calcul detheta+plasticite n hyper3 en C++, donne ce premier cas d'hyper�elasticit�e (sans �bres) en langage C++.

Il pourra donc, r�eciproquement, servir �egalement de base pour une comparaison FENICs Project - C++dans la suite du projet de recherche en simulation num�erique de la croissance d'une cellule v�eg�etale Chara .

42

Page 43: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Figure 8: Comparaison solution analytique-solution num�erique FE (m�ethode newtontr) de l'�elongation radialedans la paroi, seulement due �a la partie hyper�elastique de la croissance de la cellule.Le nombre de points d'�evaluation sur l'�epaisseur de la paroi est de 100 points.

Figure 9: Erreur num�erique de la solution FE obtenue sur FENICs Project par la m�ethode newtontr pour L=2,Rmin=1, Rmax=1.1 . Cette erreur (0.77/100 environ) traduit l'�ecart entre les 2 courbes de la Figure 8 .

43

Page 44: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

5. In uence des �bres attach�ees �a la paroi primaire de la cellule

souche lors de sa turgescence

Dans le �chier hyper3 �bre casestudy2 pression=0 dP=0.04 avec13dP, donn�e en ANNEXE 4, onpart d'une pression nulle puis, par pas de pression de dP=0.04 MPa, on atteint au bout de 13 "gon ements"�a la pression de turgescence �nale donn�e dans le case study 2 de l'article (0.5 Mpa, cf x5.2.2) pour calculerensuite l'�elongation �L du cylindre sur le dernier pas de pression, c'est-�a-dire, comme dans le case study 2,approximativement entre 0.46 Mpa et 0.5 Mpa. Le choix de L=5.5 provient, dans ce cas, du fait que les auteursont pris L0=12 mm pour cette simulation uniquement (on a bien alors 2*5.5+2*0.5 = 12 avec nos 2 calottessph�eriques en plus).

R�esultat sur l'�elongation de la cellule, obtenu via le �chier import 13dP.py :

Compilation import 13dP.py pour alpha=0 (alpha=0 initialement), K2=1 (K2=1 initialement), L=5.5, h-h=0.15,Rmin=0.5, delta=0.01 :

***********************************************************************************************************

python import 13dP.py0.00 // = Pression totale0.505 // = point d'�evaluation en z=�L , R=(Rmin+Rmax)/2 et un angle pris �a 0 radians.0.00156885282808 // �elongation en haut-0.00158651058946 // �elongation en bas0.00315536341754 // = �L � 3.15 �m

0.080.5050.00313949203122-0.00318196431870.00632145634993 // �L � 6.32-3.15 = 3.17 �m (les longueurs sont cumul�ees car non int�egr�ees dans la bouclefor du �chier hyper3 �bre casestudy2 pression=0 dP=0.04 avec13dP)

0.120.5050.00470952080334-0.004799948624110.00950946942745

0.160.5050.00627690289836-0.00642317474660.012700077645

0.20.5050.0078430803984-0.008054648110160.0158977285086

0.240.5050.00940677919958-0.009698357286480.0191051364861

44

Page 45: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

0.280.5050.0109796531461-0.01132245853710.0223021116832

0.320.5050.0125517019515-0.01296945767880.0255211596303

0.360.5050.0141287361848-0.01460711490090.0287358510858

0.40.5050.0156974904264-0.01628511626040.0319826066868

0.440.5050.0172762240278-0.01792270501570.0351989290434

0.480.5050.018856021532-0.01960671383330.0384627353653

***********************************************************************************************************

Compilation import 1dP.py (un seul pas de pression) pour L=5,Rmin=0.5, delta=0.01 :

0.520.5050.00139434622398 ; soit environ 1.39 microm�etre d'�elongation sur la partie sup�erieure de la bact�erie .0.00155298495423 ; soit environ 1.55 microm�etre d'�elongation sur la partie inf�erieure de la bact�erie .

Pour L=5, Rmin=0.5, delta=0.01 (soit une longueur de 2*(5+0.5)=11 ) on est quasiment en ad�equation(2.94 microm�etres d'�elongation) avec le r�esultat annonc�e (3 �m) sur la courbe de la �gure Fig.12.b) du casestudy 2 de l'article .

Conclusion : la simulation du gon ement hyper�elastique de la paroi avec �bres est stable par pas de pressionde 0.04 Mpa. Il en va de meme pour son �elongation �L, �a chaque gon ement de la cellule, qui vaut environ3.2 �m �a 0.1 �m pr�es. Sur la Fig. 12. b) (x5.2.2.) de l'article, l'�elongation de la r�eponse �elastique (partie3 du processus de croissance dans leurs notations) vaut, �a 0.1 �m pr�es, 3 �m, d'apr�es l'�echelle de la �gure.L'erreur relative est donc comprise entre 3.33 et 6.66 (environ) pour cent maximum (nous n'avons pas plus dedonn�ees sur cette partie). On est quand meme en coh�erence avec l'ordre de grandeur et, surtout, avec la th�eoriePhysique du mod�ele propos�e dans cet article (d�ecomposition de Rodriguez ).

45

Page 46: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

6. Calcul de la fonction de surcharge �dev

.

En ANNEXE 5, on trouvera une synth�ese comment�ee et bien d�etaill�ee des calculs �a e�ectuer dans l'ordrepour parvenir �a simuler le sch�ema num�erique donn�e �a la �n de l'article (cf p. 19-20).

Cette synth�ese est disponible dans le �chierNotation plasticite.py dans helice+hyper3+theta+plasticiten hyper3 base+calcul de theta+plasticite

Toutefois le sch�ema semi-implicite �nal n�ecessitera, pour la m�ethode de Newton, �egalement le calcul de

la d�eriv�ee@�

@��n, explicitement donn�e dans l'article (cf p. 779, Appendix A, Modeling cell wall growth using

�bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones) .

Le calcul de la fonction seuil de plasticit�e n�ecessite, �a l'instar des d�eriv�ees donn�ees en Appendix A del'article, le calcul pr�ealable du multiplicateur de Lagrange � introduit pour calculer la fonction de surcharge

�dev

li�ee au processus d'extension isochore. L'algorithme de ce calcul en langage Fenics part des formules parradicaux de racines d'ordre 4 uniquement dans les cas o�u elles peuvent etre r�eelles. Ces formules ont �et�e prisesdirectement sur Wikipedia, car ces formules sont moins "couteuses" num�eriquement que le proc�ed�e classique deCardan-Ferrari . Le code est donn�e en pi�ece jointe dans le �chier calcul racines fenics.py, �a l'emplacementn helice+hyper3+theta+plasticite n hyper3 base+calcul de theta+plasticite n Calcul theta.

A�n de mieux comprendre la s�equence donn�ee dans ce dernier calcul, auquel nous nous sommes donc arret�espour ce stage, nous donnons une s�equence d�etaill�ee d'une simulation interm�ediaire bas�ee sur un calcul, donn�een Appendix B (p.781) de l'article, permettant d'estimer la viscosit�e � et les param�etres de seuil dynamiques((1+h)*Y1 et (1+h)*Y2) �a partir de la solution analytique d'une "tr�es petite d�eformation" "�elasto plastique" .

Ce calcul est donn�e dans le �chier compare theta appendixB.py �a l'adresse helice+hyper3+theta+plasticiten hyper3 base+calcul de theta+plasticite n Calcul theta du dossier joint �a ce rapport.

Il est �egalement donn�e en ANNEXE 6.

Ce calcul permet de comparer dans un cas simple et standard les grandeurs essentielles dans le mod�elephysique de l'article telles que �, � , �dev, ~J1, ~J2, symR

�, Dg, donn�ees en Appendix B, avec celles obtenuesnum�eriquement, et de voir tout d'abord si, dans le calcul num�erique de �, les formules impl�ement�ees (tr�ese�caces) pour les racines d'ordre 4 que nous obtenons �a la �n de l'ex�ecution du �chier sont correctes. On esten e�et dans ce cas sur une �equation du second degr�e [ ~J1 = 0] poss�edant 2 racines r�eelles �evidentes donn�ees �ala �n de la s�equence ci-dessous.

Les r�esultats sont tr�es satisfaisants, hormis ~J2, o�u l'erreur est li�ee essentiellement �a un facteur -0.98 pr�esentdans le tenseur �dev intervenant dans le produit contract�e.

46

Page 47: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

****************************************************************************************************************

R�esultats lors de la compilation du �chier compare theta appendixB.py :

****************************************************************************************************************

miguel@Precision-T1500: /Dropbox/partage/helice+hyper3+theta+plasticite/hyper3 base+calcul de theta+plasticite/Calcultheta

python compare theta appendixB.py

sigma numerique(r,0,0) =

[ -3.33354803e-01 -9.75227480e-01 -3.27898497e-03-9.75227480e-01 2.70946120e+01 1.77109169e-02-3.27898497e-03 1.77109169e-02 1.33611201e+01]

(seules comptent les valeurs situ�ees sur la diagonale, les autres termes provenant de l'erreur num�erique)

tau dev numerique(r,0,0) =

[ -1.38408078e+01 -9.84719000e-01 -3.31072366e-03-9.84719000e-01 1.38539405e+01 1.78830586e-02-3.31072366e-03 1.78830586e-02 -1.31327023e-02]

valeurs propres de sigma analytique =

-0.5728.787821782214.1089108911

tau dev analytic =

[[-14.82168733 0. 0. ]

[ 0. 0. 0. ]

[ 0. 0. 14.82168733]]

J tilde 1 =0.0

J tilde 2 =439.364830491

J 2 =385.914943037

theta 1(r,0,0) = 96.401966667theta 2(r,0,0) = -96.401975824theta 3(r,0,0) = 296.401975824theta 4(r,0,0) = 103.598033333

theta analytic 1(r,0,0) = 296.44128884theta analytic 2(r,0,0) = -96.4412888398

*******************************************************************************************************************

47

Page 48: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Il appara�t donc que les valeurs num�eriques de �, � , �dev (avec une erreur de 6/100 sur les valeurs propres)sont assez satisfaisantes. Cela est en revanche moins le cas pour l'invariant de Spencer J2 o�u l'on commetune erreur de 12/100. Cela s'explique, en partie du moins, par le fait que le tenseur appel�e dans le codeci-dessus "tau dev numerique(r,0,0)" comporte deux termes �egaux �a - 0.984 , correspondant (globalement) �al'ordre d'erreur num�erique commis dans le calcul de ce tenseur (idem pour "sigma numerique(r,0,0)" ).

Toutefois l'objectif initial dans cette s�equence, �a savoir retrouver les racines de la solution analytique, est belet bien atteint.

Le dernier r�esultat a�ch�e fournit en e�et les bonnes racines, �a savoir "theta 2(r,0,0)" et "theta 3(r,0,0)" .

La valeur erron�ee de "theta 4(r,0,0)" provient de l'erreur commise dans le calcul de J2 ( J2 - ~J2 = 53.45 ).

Remarque : en faisant par exemple la di��erence theta analytic 1(r,0,0) - theta 3(r,0,0) , on voit bien que

l'erreur num�erique �nale dans le calcul de ces racines est de l'ordre de 10�2.

Mais ceci n'est pas le code, attention, que nous prendrons pour le calcul syst�ematique du multiplicateurde Lagrange � sur n'importe quel maillage de la paroi.

L'erreur de la s�equence pr�ec�edente se situait en fait au niveau du "tri" des racines d'ordre 4 obtenuespuisque, ainsi que le �chier python test racines enpython permet de le v�eri�er, les racines que l'on obtientpeuvent etre dans certains cas les parties r�eelles ou imaginaires de racines complexes. Cette condition a �et�e�nalement corrig�ee en adoptant l'�ecriture en coordonn�ees polaires des nombres complexes, et en rempla�cantles conditionnelles c0, c3, c4, c5 du code pr�ec�edent par des conditionnelles portant sur le module et l'anglepolaire associ�es �a chaque racine imaginaire dans le calcul correct du �chier �nal calcul racines fenics.py,r�e-utilisable donc, d'apr�es nos v�eri�cations, pour la suite des calculs et l'impl�ementation du sch�ema num�erique�nal donn�e dans l'article .

Le �chier calcul racines fenics.py est �egalement donn�e en ANNEXE 7 de ce rapport .

On notera de plus que l'on prend en compte, dans cette version �nale du calcul de �, l'erreur num�eriquecommise par la machine (de l'ordre de 10�12) dans les d�e�nitions des fonctions conditionnelles appel�ees condi-tional dans le logiciel FENICs Project . C'est ce "d�etail" d'erreur machine qui nous donna (car mes tuteursm'ont bien aid�e l�a-dessus) le plus de di�cult�es pour obtenir la bonne valeur de � �a la �n du stage (not�e theta bondans le code) car elle intervenait aussi dans les fonctions conditionnelles.

La valeur de la fonction de surcharge �dev

(essentielle dans ce mod�ele!) associ�ee �a la phase d'extensionisochore est alors donn�ee �a partir de la fonction distance not�ee � par l'�egalit�e (7) page 15 de ce rapport, en ye�ectuant la substitution � � theta bon. Elle d�epend par d�e�nition de la valeur, strictement positive ou non,de la fonction seuil de plasticit�e fdev (cf x 2. Physique d'une cellule �a paroi de ce rapport) .

48

Page 49: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

7. Conclusion

La mod�elisation num�erique du maillage tridimensionnel de la paroi d'une cellule v�eg�etale donn�ee dans le�chier FreeFem++ bacterie.edp (paroi cylindrique avec ajout de calottes sph�eriques aux extr�emit�es) ainsique l'emploi de la m�ethode Newton �a r�egion de con�ance avec comme pr�e-conditionneur le solveur MUMPS(optimum en e�ectuant une factorisation de Jacobi, d'apr�es les tests) s'av�erent etre, d'apr�es les nombreux cas desimulation ainsi que les di��erents param�etrages r�ealis�es tout au long de ce stage, la m�ethode de r�esolution FEMoptimale pour le probl�eme variationnel (div(�) = 0 dans H1()) inh�erent au ph�enom�ene d'hyper�elasticit�ed'une cellule v�eg�etale Chara, que l'on tienne compte ou non de la structure semi-cristalline des �bres, align�eeshorizontalement en treillis dans la paroi �a l'instant t=0, lors de l'impl�ementation de cette m�ethode it�erative.

Pour la seconde partie de ce stage, concernant l'ajout des �bres dans la coque cylindrique et le calcul des ots plastiques, nous sommes parvenus, malgr�e de nombreux petits obstacles num�eriques, �a donner un calculaussi simple que possible du multiplicateur de Lagrange � de l'article en chaque point du maillage de la paroi.Cette fonction scalaire est fondamentale dans ce mod�ele de plasticit�e des parois car elle donne presque toutesles grandeurs n�ecessaires pour l'algorithme �nal de l'article �a chaque pas de temps �t .

Finalement j'ai pu apprendre, tout au long de mon stage, grace aux directives et aux comp�etences excellentesde mes tuteurs dois-je le souligner, �a visualiser et �a comprendre m�ethodiquement, via des tests et des v�eri�cationssuccessives, les subtilit�es d'ordre num�erique intervenant dans la programmation en langage Python pour Fenics,lorsque l'on veut calculer une fonction sur un maillage d'�el�ements �nis et r�esoudre une EDP (simple dans le cashyper�elastique) par FEM .

49

Page 50: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

8. Bibliographie

50

Page 51: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

9. ANNEXES

****** ANNEXE 1 *******

**********************************************************************

S�equence d�etaill�ee d'un code en FreeFem++ (version 3.51-win 64) pour lemaillage de la paroi cylindrique d'une cellule v�eg�etale Chara, sans les �bres,

avec ajout de calottes sph�eriques aux deux extr�emit�es (cf �chieradapted bacterie.edp ) :

load "msh3"load "tetgen"load "medit"

real L=4.5;

// La longueur de la cellule proprement dite, c'est-�a-dire sans tenir compte des calottes sph�eriques arti�-ciellement ajout�ees aux 2 bouts du cylindre, est �egale ici �a 2*L = 9 mm (on prendra plutot L=1 ou L=2 lorsquela partie plasticit�e interviendra dans les calculs, ce qui est par ailleurs en accord avec L0 = 4 mm dans l'artricle).

mesh Th=square(45,45,[x*(2*L+�)-L-�/2,2*y*�]);// x et y sont dans l'intervalle [0; 1]// Ceci est sp�eci��e plus bas par : int[int] ref1 = [0,1] .

// Th est le rectangle de largeur [��2 ;�2 ] et de longueur [0; 2�].

// Chaque intervalle, dans ce cas, poss�ede la meme subdivision r�eguli�ere ( 45 sous-intervalles ).

// Param�etrage de la paroi cylindrique de rayon int�erieur �egal �a 1 ainsi que des 2 calottes sph�eriques derayon 1 �egalement que l'on ajoutent aux extr�emit�es :

func f1=cos(x-L)*cos(y)*(x>L)+cos(x+L)*cos(y)*(x<-L)+cos(y)*((x<L) && (x>-L));func f2 =cos(x-L)*sin(y)*(x>L)+cos(x+L)*sin(y)*(x<-L)+sin(y)*((x<L) &&(x>-L));func f3 =(L+sin(x-L))*(x>L)+(-L+sin(x+L))*(x<-L)+x*((x<L) && (x>-L));

// Les parties (x>L) et (x<-L) concernent les 2 calottes sph�eriques .

// Matrice DF des d�eriv�ees partielles associ�ees au param�etrage de la paroi (matrice 3 lignes � 2 colonnes):

func f1x =-sin(x-L)*cos(y)*(x>L)-sin(x+L)*cos(y)*(x<-L);func f2x =-sin(x-L)*sin(y)*(x>L)-sin(x+L)*sin(y)*(x<-L);func f3x =cos(x-L)*(x>L)+cos(x+L)*(x<-L)+1*((x<L) && (x>-L));

func f1y =-cos(x-L)*sin(y)*(x>L)-cos(x+L)*sin(y)*(x<-L)-sin(y)*((x<L) && (x>-L));func f2y =cos(x-L)*cos(y)*(x>L)+cos(x+L)*cos(y)*(x<-L)+cos(y)*((x<L) && (x>-L));func f3y =0.;

// Matrice (sym�etrique) M = DF tDF , dont les coe�cients (mij)i;j2f1;2g sont ceux de la m�etrique associ�ee:

func m11=f21x+f

22x+f

23x ;

func m21=f1x*f1y+f2x*f2y+f3x*f3y ; // ( m21 = m12 )

func m22=f21y+f

22y+f

23y ;

// "Adaptation" du rectangle initial Th �a la con�guration spatiale demand�ee via la fonction adaptmesh :

51

Page 52: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

func perio=[[4,y],[2,y],[1,x],[3,x]];

// La fonction perio assure une certaine "p�eriodicit�e" ou r�egularit�e du maillage en fonction de la subdivisionchoisie par l'utilisateur dans le rectangle de r�ef�erence.

real hh=0.1;

// Le scalaire hh permet d'homog�en�eiser ou de rendre quasi-uniforme le nouveau rectangle Th, adapt�e,via la fonction adaptmesh, �a la m�etrique cylindre+sph�ere ci-dessous, en imposant un diam�etre maximal pourchaque triangle de ce maillage.// On prend hh = 0.1, car c'est ici tout simplement le ratio correspondant entre la subdivision de d�epart choisie(45 sous-intervalles) et la longueur L (4.5).

real vv= 1/square(hh);verbosity=2;Th=adaptmesh(Th,m11*vv,m21*vv,m22*vv,IsMetric=1,periodic=perio);medit("adapted squaremesh",Th,wait=1);verbosity=2;

// Construction des surfaces int�erieure (r=Rmin) et ext�erieure (r=Rmax) de la paroi de notre cellule :

real Rmin = 0.5;func f1min = Rmin*f1;func f2min = Rmin*f2;func f3min = Rmin*f3;

int[int] ref1=[0,1];int[int] ref2=[0,2];

cout << "=====================" <<endl;cout <<"====================="<< endl;mesh3 Th3sph=movemesh23(Th,transfo=[f1min,f2min,f3min],orientation=-1,label=ref1);cout << "=====================" <<endl;cout << "=====================" << endl;

real Rmax = 0.51;func f1max = Rmax*f1;func f2max = Rmax*f2;func f3max = Rmax*f3;

cout << "=====================" << endl;cout <<"=====================" << endl;

mesh3 Th3sph2=movemesh23(Th,transfo=[f1max,f2max,f3max],orientation=1,label=ref2);

cout<<"=====================" <<endl;cout << "====================="<<endl;

savemesh(Th3sph2,"cellwall.mesh");

cout<< "addition" << endl;

// Superposition des deux surfaces dans un meme maillage 3D :

mesh3 Th3=Th3sph+Th3sph2;

// A�chage 3D du maillage "adapt�e" Th3 des 2 surfaces :

52

Page 53: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

medit("cellwallwithahole",wait=1,Th3);

// "T�eta�edrisation" du maillage Th3 :

real[int] hole = [0.,0.,0.];

// La fonction hole d�e�nit le point autour duquel on ne souhaite pas cr�eer d'�el�ements �nis 3D .

real[int] domain = [0.505,0.,0.,1,0.001];

// La fonction domain permet de d�e�nir une r�egion autour d'un point milieu (ici le point (0.505,0.,0.)),�a laquelle on associe un label (ici �egal �a 1). Le dernier param�etre est la fonction sizevolume, qui impose unvolume maximum pour chaque t�etra�edre cr�e�e ensuite grace �a la fonction TetGen entre les 2 surfaces maill�ees .

// Le volume maximal d'un t�etra�edre est donc �egal ici �a volmax = 0.001 (car hh3 = 0.001).

cout << "=============================" <<endl;cout<< " tetgen call with hole " << endl;cout <<"=============================" << endl;mesh3 Th3�nhole=tetg(Th3,switch="paAAQC",nbofholes=1,holelist=hole,nbofregions=1,regionlist=domain);cout << "============================="<<endl;cout << "�nish: tetgen call with hole "<< endl;cout << "=============================" << endl;

// Sauvegarde du maillage �nal :

savemesh(Th3�nhole,"bacterie.mesh");

// A�chage 3D du maillage �nal :

medit("cell wall tetrahelized",wait=1,Th3�nhole);

*****************************************************************************

53

Page 54: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

****** ANNEXE 2 *******

***********************************************************************************************

Mod�elisation g�eom�etrique de la paroi d'une cellule Chara , sans les �bres etsans ajout de calottes sph�eriques �a ses extr�emit�es, sur le logiciel Fenics :

////////////////////////////////////////////////////////////////////////////////////

S�equence cod�ee en Python pour Fenics dans le �chier cylo L=12 delta=0.01.xml :

parameters["form compiler"]["quadrature degree"] = 6�c options=f"optimize":"True","eliminate zeros":"True","precompute basis const":"True","precompute ip const":"True"gparameters["mesh partitioner"] = "ParMETIS"

L=12. #rapport d'aspect : Ldimensionne/Rmindimensionne

Rmin = 0.5

delta = 0.01

Rmax = Rmin+delta

#fragments=51. # (optionnel)

cylmin = Cylinder(do.Point(0.0,0.0,L),do.Point(0.0,0.0,-L),Rmin,Rmin)cylmax = Cylinder(do.Point(0.0,0.0,L),do.Point(0.0,0.0,-L),Rmax,Rmax)cylinder=cylmax-cylmin

generator = CSGCGALMeshGenerator3D()

# Param�etres du maillage primordiaux :

generator.parameters["edge size"] = 0.75generator.parameters["facet size"] = 0.75generator.parameters[ "facet distance" ] = 0.314generator.parameters[ "cell size" ] = 0.75

# Param�etres de ra�nement du maillage :

generator.parameters["facet angle"] = 20.generator.parameters[ "cell radius edge ratio" ] = 3.generator.parameters[ "feature threshold" ] = 72.generator.parameters[ "mesh resolution" ] = 64.

info(generator.parameters, True)mesh=generator.generate(CSGCGALDomain3D(cylinder))

File("cylo L=12 delta=0.01.xml") << mesh

m = do.Mesh("cylo L=12 delta=0.01.xml")do.plot(m, "3D mesh")do.interactive()

///////////////////////////////////////////////////////////////////////////////////////

***************************************************************************************

54

Page 55: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

****** ANNEXE 3 *******

**********************************************************************************************************

Simulation de l'hyper�elasicit�e de la paroi par la m�ethode newtontr de la librairie PETSc sur FENICs Project ,cod�ee dans le �chier hyper3.py :

/////////////////////////////////////////////////////////////////////////////////////////////////

from future import print functionfrom dol�n import *from mshr import *import numpy as npimport pickle

import time

nom�chier='solution numerique originalEtienne�lehyper3mail21mars2017.pickle'

parameters["allow extrapolation"] =True // Lorsque les points ne sont pas des noeuds du maillage .parameters["re�nement algorithm"] = "plaza with parent facets"parameters["form compiler"]["cpp optimize"] = Trueparameters["form compiler"]["representation"] = "quadrature"parameters["form compiler"]["quadrature degree"] = 6 // Degr�e de quadrature .

parameters["form compiler"]["eliminate zeros"] =Trueparameters["form compiler"]["precompute basis const"] =Trueparameters["form compiler"]["precompute ip const"] =Trueparameters["mesh partitioner"] = "ParMETIS"

L=2. //rapport d'aspect : Ldimensionne/Rmindimensionne

Rmax=1.1Rmin=1.

Pression=0.05 // Incr�ement de pression de l'article (cf x5.2.2, case study 2.2 , Figure 12. a) et b) )

// Material constants

mu = 100 // Lame's constants

lmbda = 100

mesh = Mesh("bacterie L=2.xml") // Mesh issue de bacterie.mesh sur FreeFem++

boundary markers = FacetFunction('size t', mesh) // D�e�nition et indexation des bords du mesh en R=Rmin(2 calottes spheriques+ 1 surface lat�erale)

class Sur�nthaut(SubDomain):

def inside(self, x, on boundary):

return on boundary and (x[0]*x[0]+x[1]*x[1]+(x[2]-L*Rmin)*(x[2]-L*Rmin)< 1.001*Rmin**2) and (x[2]>=L*Rmin)

class Sur�ntbas(SubDomain):

def inside(self, x, on boundary):

55

Page 56: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

return on boundary and (x[0]*x[0]+x[1]*x[1]+(x[2]+L*Rmin)*(x[2]+L*Rmin)< 1.001*Rmin**2) and (x[2]<=-L*Rmin)

class Sur�ntcyl(SubDomain):

def inside(self, x, on boundary):

return on boundary and (x[0]*x[0]+x[1]*x[1]<1.001*Rmin**2) and (x[2]*x[2]<(L*Rmin)*(L*Rmin))

// Initialize sub-domain instances

sur�nthaut = Sur�nthaut()sur�ntbas = Sur�ntbas()sur�ntcyl = Sur�ntcyl()

sur�nthaut.mark(boundary markers, 1)sur�ntbas.mark(boundary markers, 2)sur�ntcyl.mark(boundary markers, 3)

ds = Measure('ds', domain=mesh, subdomain data=boundary markers)

V = VectorFunctionSpace(mesh, "Lagrange", 2) // fonctions vectorielles P2 continues de Lagrange

// De�ne functions

du = TrialFunction(V) // Incremental displacementv = TestFunction(V) // Test functionu = Function(V) // Displacement from previous iteration

n = FacetNormal(mesh)d = len(u)I = Identity(d)

F = I + grad(u) // Deformation gradientJ=det(F)C = F.T*F // Right Cauchy-Green tensor

//psi = lmbda/2*(tr(C)-3-2*J)//S = 2*di�(psi, C) // Second tenseur de Piola-Kirchlo� ( S = 2* dpsi/dC)//tau=F*S*transpose(F)

tau=lmbda*(F*F.T-I) // Tenseur pression de Kirchlo� (tau = F*S*(F.T) = J*sigma)

B=inv(F)

avant = time.clock()

L = inner(tau, grad(v)*B)*dx +Pression*J*inner(n, B*v)*ds(1)+Pression*J*inner(n, B*v)*ds(2)+Pression*J*inner(n,B*v)*ds(3) //Formulation du probl�eme variationnel : div(sigma) = 0 dans H1()

a=derivative(L,u,du)

snes solver parameters = "nonlinear solver": "snes"

problem=NonlinearVariationalProblem(L,u,J=a,form compiler parameters=�c options)

solver = NonlinearVariationalSolver(problem)solver.parameters.update(snes solver parameters)

56

Page 57: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

PETScOptions.set('ksp gmres restart', '130')PETScOptions.set('pc type', 'jacobi')PETScOptions.set('pc FactorSolverPackage', 'mumps')PETScOptions.set('snes type', 'newtontr')

PETScOptions.set('snes linesearch order', '3') // optionnel

PETScOptions.set('ksp monitor true residual', 'True')PETScOptions.set('ksp converged reason', 'True')PETScOptions.set('ksp monitor cancel', 'true')

PETScOptions.set('snes lag preconditioner', '5')PETScOptions.set('snes lag jacobian', '5')

PETScOptions.set('ksp atol', '1e-12')PETScOptions.set('ksp rtol', '1e-12')PETScOptions.set('ksp dtol', '1e-12')

PETScOptions.set('ksp max it', '1000')

// Solve variational problem

solver.solve()

print ('Time execution : ',time.clock() - avant)

R = np.linspace(Rmin,Rmax,100)

listenumerique=[]

for x in R:

listenumerique.append(u(x,0,0)[0])

unumerique=np.array(listenumerique)

pickle.dump([R,unumerique],open(nom�chier,'w'))

/////////////////////////////////////////////////////////////////////////////////////////////////

***************************************************************************************************

57

Page 58: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

****** ANNEXE 4 *******

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

S�equence du �chier hyper3 �bre casestudy2 pression=0 dP=0.04 avec13dP :

from future import print functionfrom dol�n import *from mshr import *import mathimport u import osimport numpy as npimport pickleimport time

// Nous vous �epargnons la re-lecture du d�ebut de s�equence quasi-r�ep�etitif des simulations d'hyper�elasticit�e. [.................................................................]

//Ajout des �bres :

alpha=0.00 // Inclinaison initiale des �bres par rapport �a l'horizontale .R=np.linspace(Rmin, Rmax, 100) // Choix de discr�etisation de l'�epaisseur de la paroi de la cellule .h=L/100. // Param�etre de la fonction plateau (trap�eze) pour les �bres .xo = SpatialCoordinate(mesh)

// Champ de �bres au repos :

f=as vector((-xo[1]*cos(alpha)/pow(xo[0]*xo[0]+xo[1]*xo[1],0.5),xo[0]*cos(alpha)/pow(xo[0]*xo[0]+xo[1]*xo[1],0.5),sin(alpha)))

// Champ de �bres sur B t :

a = F*f

// Tenseurs et fonctions scalaires associ�ees �a ce champ de �bres :

A = as tensor(a[i]*a[j],(i,j))lambda A = tr(A)a tilde = (1./sqrt(lambda A))*aA tilde = as tensor(a tilde[i]*a tilde[j],(i,j))

C hat = pow(J,-2./3.)*Cb hat = pow(J,-2./3.)*b

I4 hat = inner(C hat,A)lambda hat A = I4 hatalpha1 = (lambda hat A -1)*exp(K2*(lambda hat A -1)**2)

// Fonction trap�eze permettant de d�e�nir les �bres uniquement sur la partie cylindrique du maillageFreeFem++ choisi dans ce stage :

step=conditional(lt(abs(xo[2]-L),abs(h)),1,0)*(-1/h)*(xo[2]-L)+conditional(lt(abs(xo[2]+L),abs(h)),1,0)*(1/h)*(xo[2]+L)+conditional(lt(abs(xo[2]),

abs(L-h)),1,0)

tau = K*J*(J-1)*I + mu*(b hat-(1./3.)*tr(b hat)*I)+step*pow(J,-2./3.)*(A-(1./3.)*tr(A)*I)*alpha1*2*K1// (avec J=J bar vu qu'il n'y a toujours que de l'hyper�elasticit�e dans cette simulation)

58

Page 59: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

(cf expression de sigma Table 1, p. 757, Modeling cell wall growth using �bre-reinforced hyperelastic-viscoplastic constitutive law, R.Huang, AA. Becker, I.A. Jones)

B=inv(F)

for i in range(0,13) :

avant = time.clock()

//R�esoudre Div(sigma) = 0 en prenant comme fonction FE v2H1()\ V, avec born�e (L2(),! C()) :

L = inner(tau, grad(v)*B)*dx +Pression*J*inner(n, B*v)*ds(1)+Pression*J*inner(n,B*v)*ds(2)+Pression*J*inner(n, B*v)*ds(3)

a=derivative(L,u,du)

snes solver parameters = "nonlinear solver": "snes"

problem=NonlinearVariationalProblem(L,u,J=a,form compiler parameters=�c options)

solver = NonlinearVariationalSolver(problem)solver.parameters.update(snes solver parameters)

// Options et param�etres d'optimisation num�erique PETSc :

PETScOptions.set('ksp gmres restart', '130') // Red�emarrage de la m�ethode GMRES �a partir de d=130 //(optimal d'apr�es les tests).PETScOptions.set('pc type', 'jacobi') // Choix du pr�e-conditionneur .PETScOptions.set('pc FactorSolverPackage', 'mumps') // Solveur utilis�e pour le pr�e-conditionnement .PETScOptions.set('snes type', 'newtontr') // M�ethode de r�esolution FEM .

PETScOptions.set('snes linesearch order', '3') // optionnel

PETScOptions.set('ksp monitor true residual', 'True')PETScOptions.set('ksp converged reason', 'True')PETScOptions.set('ksp monitor cancel', 'true')

// P�eriode de remise �a jour (optionnel) : du calcul de la matrice jacobienne pour la "direction de descente"et de factorisation pour le pr�e-conditionneur (MUMPS) :

PETScOptions.set('snes lag preconditioner', '5')PETScOptions.set('snes lag jacobian', '5')

PETScOptions.set('ksp atol', '1e-12') // Erreur absolue (cf m�ethode GMRES).PETScOptions.set('ksp rtol', '1e-12') // Erreur r�esidu (cf m�ethode GMRES) .PETScOptions.set('ksp dtol', '1e-12') // Erreur relative entre chaque it�eration.

PETScOptions.set('ksp max it', '1000') // Nombre maximal d'it�erations pour les m�ethodes de Krylov .

solver.solve()

print ('Time execution : ',time.clock() - avant)

IncrementPplusdP="Pression="+str(Pression)+".h5"

mesh �le = HDF5File(mesh.mpi comm(),IncrementPplusdP, 'w')

mesh �le.write(u, "fun u P="+str(Pression)+"")

Pression = Pression+dP

59

Page 60: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

///////////////////////////////////////////////////////////////////////////////////////////////////////

*********************************************************************************************************

****** ANNEXE 5 *******

************************************************************************************************************

Synth�ese et notations d�etaill�ees des grandeurs physiques de l'article �a calculer pourl'impl�ementation du sch�ema num�erique �nal :

////////////////////////////////////////////////////////////////////////////////////////////////////////////

S�equence du �chier Notation plasticite.py :

from future import print functionfrom dol�n import *from mshr import *from petsc4py import PETSc

parameters["form compiler"]["cpp optimize"] = Trueparameters["form compiler"]["representation"] = "quadrature"parameters["form compiler"]["quadrature degree"] = 6�c options= "optimize": "True","eliminate zeros":"True","precompute basis const":"True","precompute ip const":"True"parameters["mesh partitioner"] = "ParMETIS"

L=1. // Rapport d'aspect

Rmax=1.1Rmin=1

Pression=0.04 // Incr�ement de pression du case study 2 (cf x5.2.2. de l'article)

// Material constants :

nu = 0.3E = 1.65*1e3 // valeur prise dans le case study 2 (x5.2.2).kappa = E/(3*(1-2*nu))mu = E/(2*(1+nu))K1 = muK2 = 1.

mesh = Mesh("bacterie L=1.xml")

boundary markers = FacetFunction('size t', mesh)

class Sur�nthaut(SubDomain):

def inside(self, x, on boundary):

return on boundary and (x[0]*x[0]+x[1]*x[1]+(x[2]-L*Rmin)*(x[2]-L*Rmin)< 1.001*Rmin) and (x[2]>=L*Rmin)

class Sur�ntbas(SubDomain):

def inside(self, x, on boundary):

return on boundary and (x[0]*x[0]+x[1]*x[1]+(x[2]+L*Rmin)*(x[2]+L*Rmin)< 1.001*Rmin) and (x[2]<=-L*Rmin)

60

Page 61: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

class Sur�ntcyl(SubDomain):

def inside(self, x, on boundary):

return on boundary and (x[0]*x[0]+x[1]*x[1]<1.001*Rmin) and (x[2]*x[2]<(L*Rmin)*(L*Rmin))

// Initialize sub-domain instances

sur�nthaut = Sur�nthaut()sur�ntbas = Sur�ntbas()sur�ntcyl = Sur�ntcyl()

sur�nthaut.mark(boundary markers, 1)sur�ntbas.mark(boundary markers, 2)sur�ntcyl.mark(boundary markers, 3)

ds = Measure('ds', domain=mesh, subdomain data=boundary markers)V = VectorFunctionSpace(mesh, "Lagrange", 2)

// De�ne functions

du = TrialFunction(V) // Incremental displacementv = TestFunction(V) // Test functionu = Function(V)ue = Function(V)a0 = Function(V) // Champ de direction des �bres au repos .

// Displacement from previous iteration

n = FacetNormal(mesh)

d = len(u)I = Identity(d) // Identity tensorF = I + grad(u) // Deformation gradientFe = I + grad(ue)Fg=inv(Fe)*F // Mod�ele de base dans l'article : F = Fe*FgC = F.T*F

// Grandeurs sur la con�guration �nale (r�eelle) appel�ee B t dans l'article :

a=F*a0 // Champ de �bres sur B t

A0=a0.T*a0lambdaA = inner(C,A0) // lambdaA = trace(A)A=a.T*a

a tild=a/lambdaA**0.5 // k a tild k2 = 1A tild=a tild.T*a tild

// A tild est d�e�nie comme tel �a cause de l'hypoth�ese de "�bres inextensibles".// Comme k a tild k2 = 1 = constante, on a alors R lambdaA bar = 0 ce qui donne tau lambdaA norm = 0 ,// tau lambdaA tens = 0 , puis on obtient bien donc f lambdaA = 0 .

A hat=Fe.T*A tild*Fe

// Grandeurs sur la con�guration interm�ediaire (�ctive) appel�ee Bt dans l'article :

n bar = inv(Fe)*n // Champ des vecteurs normaux unitaires sortanta bar=Fg*a 0 // Champ de �bres sur Bt

A bar=a bar.T*a bar // D�e�nition matricielle donnant f lambdaA = 0 sur Bt (idem que pour A tild sur B t).C bar = Fe.T*Fe

61

Page 62: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

b bar = Fe*Fe.TJ bar = det(Fe)C bar hat = C bar/pow(J bar,2./3.)b bar hat = b bar/pow(J bar,2./3.)

// Invariants intervenant dans la fonction psi "�energie libre" :

I1 bar hat=tr(C bar hat)I2 bar hat=1/2*(tr(C bar hat)**2-tr(C bar hat**2))I4 bar hat=inner(C bar hat,A bar)

b=F*F.T // Tenseur de Cauchy-Green droit .

// Fonction "�energie libre" et second tenseur de Piola-Kirchlo� :

psi = kappa/2*(J bar-1)**2+mu/2*(I1 bar hat-3) + 0.5*K1/K2*(exp(K2*(I4 bar hat-1)**2)-1)

S bar =2*di�(psi, C bar)

// Tenseur pression de Kirchlo� : tau=Fe*S bar*transpose(Fe)

// Cas o�u l'on consid�ere le gon ement seulement hyper�elastique avec ajout des �bres :

// tau dev=(tau-tau.T)/2//R lambdaA=(A tild-A tild.T)/2

R lambdaA bar = A hat-C bar/3 // sur Bt .R lambdaA = A tild - (1./3.)*tr(A tild)*I // sur B t .

tau lambdaA norm=inner(tau,R lambdaA)tau lambdaA tens=tau lambdaA norm*A tild // sur B t .

tau lambdaA bar = inner(S bar, R lambdaA bar)S lambdaA bar=(tau lambdaA/lambdaA)*A barS A bar=S bar-inner(C bar*S bar*C bar,A bar)*A bar/lambdaA**2 // sur Bt .

tau vol bar = inner(C bar, S A bar)S vol bar=1/3*tau vol bar*inv(C bar) // sur Bt .

tau A tens=tau-inner(tau,A tild)*A tildtau vol norm=tr(tau A tens)tau vol tens=tau vol norm*(1./3.)*I // sur B t .

tau dev=tau-3/2*(tau vol tens+tau lambdaA tens) // sur B t .S dev bar=S bar-3/2*(S vol bar+S lambdaA bar) // sur Bt .

// Espace des invariants du tenseur de Spencer sur les con�gurations �nale (symbole " tild") et interm�ediaire// (symbole " bar") :

J1 tilde=dot(tau dev*a tild,tau dev*a tild) // sur B t .J2 tilde=inner(tau dev,tau dev) // sur B t .

J1 bar = inner((1/lamdaA)*(C bar*S bar dev*C bar*S bar dev*C bar), A bar) // sur Bt .

J2 bar = inner(C bar, S bar dev*C bar*S bar dev) // sur Bt .

// Fonction seuil pour la partie isochore correspondant �a l'�equation de l'ellipse dans l'espace des invariants// du tenseur de Spencer et �a partir de laquelle on calcule la fonction distance phi :

f dev=J1 bar/Y1**2+J2 bar/Y2**2-(1+h(alpha))

62

Page 63: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

// Fonction seuil pour la partie dilatation volumique :

f vol=1/2*(tr(tau A tens)**2-tr(tau A tens**2))-(Y3+h vol(alpha,alpha vol))

// Fonction seuil pour la partie distorsion des �bres : f lambdaA=tau lambdaA tens-(Y4+h-lambdaA(alpha,alpha lambdaA))// Non prise en compte dans la simulation �nale (�bres inextensibles).

// Fonction de surcharge pour la partie distorsion des �bres : phi bar lambdaA=(f lambdaA+abs(f lambdaA))/4// Non prise en compte dans la simulation �nale (�bres inextensibles).

// Le multiplicateur de Lagrange theta d�e�ni dans l'article doit v�eri�er :

0=(1+h(alpha))*(theta-Y1**2)**2*(theta-Y2**2)**2-J2*Y2**2*(theta-Y1**2)**2-J1*Y1**2*(theta-Y2**2)**2

// Fonction de surcharge pour la partie dilatation volumique de la paroi :

phi bar vol=(f vol+abs(f vol))/4

// Fonction distance :

phi=-theta*(J1 bar/(theta-Y1**2)**2+J2 bar/(theta-Y2**2)**2)**0.5

// Fonction de surcharge pour la partie extension isochore de la paroi (m=1 dans l'article) :

phi bar dev=pow(phi,m)*conditional(gt(f dev,0), 1, 0)

// Calculs explicites des d�eriv�ees en fonction de theta donn�es en Appendix A de l'article :

Nu d =2((1+h(alpha))*(theta-Y1**2)**2*(theta-Y2**2)**2*(2*theta-Y1**2-Y2**2)-J2*Y2**2*(theta-Y1**2)**2-

J1*Y1**2*(theta-Y2**2)**2)

Nu 1 = Y1**2*(theta-Y2**2)**2/Nu dNu 2 = Y2**2*(theta-Y1**2)**2/Nu dNu h = -(theta-Y1**2)**2*(theta-Y2**2)**2/Nu d

dphidJ1 bar = theta**2/(2*phi*(theta-Y1**2)**2)dphidJ2 bar = theta**2/(2*phi*(theta-Y2**2)**2)dphidtheta = phi/theta-theta**2/phi*(J1 bar/(theta-Y1**2)**3+J2 bar/(theta-Y2**2)**3)

beta3 = m*phi**(m-1)*(dphidJ1 bar+Nu 1*dphidtheta)beta4 = m*phi**(m-1)*(dphidJ2 bar+Nu 2*dphidtheta)

dJ1 tilddtau = A tild*tau dev+tau dev*A tilddJ2 tilddtau = 2*tau dev

// Directions de l'�ecoulement viscoplastique (prises en compte dans le mod�ele):

sym R star = beta3*dJ1 tilddtau + beta4*dJ2 tilddtau // sur B t .

Sigma dev bar = S dev bar*C bar

symR bar star =beta3*(A hat*Sigma dev bar+(A hat*Sigma dev bar).T)+2*beta4*(C bar*Sigma dev bar+Sigma dev bar.T*C bar)

avec par d�e�nition symR bar star = (1./2.)*(C bar*R bar star+R bar star.T*C bar) // sur Bt .

R vol = I - A tildR vol star = tr(tau A tens)*R vol - tau A tens // sur B t .

R bar vol = I - A hatR vol star bar = (tr(S A bar))*R bar vol-C bar*S A bar*C bar // sur Bt .

63

Page 64: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

// Flots plastiques :

// Flot d'�ecoulement plastique dans la direction symR bar star de la partie extension isochore lors de lacroissance de la paroi :

lambda dot=phi bar dev/eta

// Flot d'�ecoulement plastique dans la direction R vol star bar de la partie dilatation volumique lors de lacroissance de la paroi (avec la condition de conservation de l'�epaisseur qui donne la fonction scalaire zeta) :

lambda vol dot = beta1*phi bar vol/eta

// Flot d'�ecoulement plastique dans la direction R lambdaA bar lors de la partie (non consid�er�e dans l'article)de distorsion des �bres lors de la croissance de la paroi :

lambda lambdaA dot = beta2*phi bar lambdaA/eta // n�egligeable dans le cadre des simulations de l'article.

// Fonction scalaire zeta (�egale en fait �a lambda vol dot / lambda dot) :

product1 = symR bar star*n barproduct2 = R vol star bar*n barzeta = -(dot(n bar, product1)) / (dot(n bar, product2))

// Tenseur �nal d'�ecoulement viscoplastique :

D bar g = lambda dot*symR bar star+lambda vol dot*R vol star bar+lambda lambdaA dot*phi bar lambdaA

////////////////////////////////////////////////////////////////////////////////////////////////////////////

64

Page 65: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

****** ANNEXE 6 *******

************************************************************************************************************

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

S�equence du �chier compare theta appendixB.py :

from future import print functionfrom dol�n import *from mshr import *

import mathimport u import numpy as npimport pickleimport time

parameters["allow extrapolation"] =Trueparameters["re�nement algorithm"] = "plaza with parent facets"parameters["form compiler"]["cpp optimize"] = Trueparameters["form compiler"]["optimize"] = Trueparameters["form compiler"]["representation"] = "u acs"parameters["form compiler"]["quadrature degree"] = 6

L=1. // rapport d'aspect : L dimensionn�ee/Rmin dimensionn�e

Rmin = 0.5delta = 0.01Rmax = Rmin+deltaPression = 0.52

// Material constants

E=1.65*1000nu = 0.3

mu=E/(2*(1+nu))K =E/(3*(1-2*nu))K1 = muK2 = 1.

// Read mesh :

mesh = Mesh("bacterie1.xml")

// Espace discret des fonctions FE :

velement = VectorElement( "Lagrange", tetrahedron, 2)

V = FunctionSpace(mesh,velement) // "Continuous Lagrange" (�egalement not�ee "CG" dans les options �c)pour les fonctions P2 (vectorielles) .

// Espaces de projection :

TT = TensorFunctionSpace(mesh,'DG',0) // "Discontinuous Lagrange" pour les tenseurs

65

Page 66: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Ve2 =FunctionSpace(mesh,'DG',0) // "Discontinuous Lagrange" pour les fonctions scalaires

du = TrialFunction(V) // Incremental displacementv = TestFunction(V) // Test functionu = Function(V)f = Function(V)anisotropie = Function(V)n = FacetNormal(mesh)

// Lesture des donn�ees de la r�eponse hyper�elastique sans �bres :

hdf PplusdP = HDF5File(mpi comm world(),"nom�chier0.52 0.0.h5", 'r')hdf PplusdP.read(u,"fun u")

// Tenseurs de base :

d = len(u)I = Identity(d)F = I + grad(u)J = det(F)C = F.T*Fb = F*F.TE = (C - I)/2E = variable(E)

C hat = pow(J,-2./3.)*Cb hat = pow(J,-2./3.)*b

// Comme a = (0, 1, 0)t , tr(A)-1 = 0, ce qui donne l'expression de tau suivante (cf Table 1., p. 757 del'article) :

tau = K*J*(J-1)*I + mu*(b hat-(1./3.)*tr(b hat)*I)

sigma = tau/J

// Cela �equivaut donc �a consid�erer le cas A=0 (pas de �bres) pour le calcul de tau dev, o�u ce tenseur s'�ecritalors simplement :

tau dev=tau-1.0/3.0*tr(tau)*I

J2=inner(tau dev,tau dev)J1=0*J2

a1 = Constant((1.0, 0.0, 0.0))a2 = Constant([0., 1., 0.])a3 = Constant([0., 0., 1.])

sigma projo = project(sigma,TT)

r = (Rmin+Rmax)/2.

sigma pro eval = sigma projo(r, 0., 0.)tau dev projo = project(tau dev,TT)tau dev pro eval = tau dev projo(r, 0., 0.)

print(sigma pro eval)print("tau dev =")print(tau dev pro eval)

66

Page 67: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

P tilde = Pression/(Rmax**2/Rmin**2-1)

sigma r = -P tilde*(Rmax**2/r**2-1.)sigma theta= P tilde*(Rmax**2/r**2+1.)sigma z = P tilde

print(sigma r)print(sigma theta)print(sigma z )

M = np.array(((-1., 0., 0.), (0., 0., 0.), (0., 0., 1.)))

J proj = project(J, FunctionSpace(mesh,'DG',0))J2 proj = project(J2, FunctionSpace(mesh,'DG',0))

tau dev analytic = J proj(r, 0., 0.)*P tilde*Rmax**2/(r**2)*M

print("tau dev analytic =")print(tau dev analytic)

J tilde 1 = 0.0J tilde 2 = 2*J proj(r, 0., 0.)**2*P tilde**2*pow(Rmax,4.)/(pow(r,4.))

print("J tilde 1 =")print(J tilde 1)print("J tilde 2 =")print(J tilde 2)print("J 2 =")print(J2 proj(r, 0., 0.))

// Calculer les racines avec J1, J2

Y1 = 10. // Cas 5.2.2 (mature cell)Y2 = 10. // Cas 5.2.2 (mature cell)

// De�ne func h ( mod�ele uni-axial adopt�e dans ce cas , cf p.767, x 4.5.3. de l'article) :

sigma 0 = 0.5 // (Mpa)sigma y = 0.3 // (Mpa)h1 = 20.6 // cas 5.2.2h2 = 20.0 // cas 5.2.eta = 9.677745*1e6 // cas 5.2.2t = 1.0 // valeur d'exemple !t bar = t/eta // (attention a mettre en MPa(-1))t bar s = 1./abs(h1*sigma y+h2*(sigma 0-sigma y))

// temps caracterisant la saturation de la fonction func alpha .

t bar s wall = 1./(h1*sigma y)

// temps caract�eristique de la paroi isol�ee , i.e. abs(h2)=0 (pour t bar s tendant vers +in�ni, cf �g.6.c) ,paragraphe 4.5) .

C3 = sigma y*h2C2 = h1*sigma y - h2*(sigma 0-sigma y)C1 = (C2*t bar s+1.)/(C2*t bar s-1.)

func h = (C1*(1.0-C2*t bar s)+(1.0+C2*t bar s)*exp(-t bar/t bar s))/(2*C3*t bar s*(C1-exp(-t bar/t bar s)))

// theta racine de :

67

Page 68: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

// f3 = (1.+func h)*(theta-Y1**2)**2*(theta-Y2**2)**2-J bar 2*(Y2**2)*(theta-Y1**2)**2-J bar 1*(Y1**2)*(theta-Y2**2)**2

//On choisit de diviser l'�equation f3=0 par Y1*Y2 (= 100) pour diminuer les erreurs num�erique dans lecalcul des racines theta i (i2f1; 2; 3; 4g).

// Coe�cients de l'�ecriture canonique de f4 = f3/(Y1*Y2), c'est-�a-dire f3/100 num�eriquement et dans cecas:

a = (1.+func h)

b = -2*a*(Y1/Y2+Y2/Y1)

c = (a*((Y1/Y2)**2+(Y2/Y1)**2) - J2/Y1**2 + 4*a - J1/Y2**2)

d =2*(Y1/Y2*(J2/Y1**2-a)+(J1/Y2**2-a)*Y2/Y1)

e =-J1/Y1**2-J2/Y2**2+a

// On cherche les racines du polynome :

f4 = a*pow(theta, 4) + b*pow(theta,3) + c*(theta**2) + d*theta + e

// Formule generale donnee sur wikipedia :

delta 0 = c**2-3*b*d +12*a*edelta 1 = 2*pow(c,3.) - 9*b*c*d+ 27*b**2*e +27*a*d**2 - 72*a*c*e

delta = (-1./27.)*(delta 1**2-4*pow(delta 0,3.))

p = (8*a*c-3*b**2)/(8*a**2)

q = (pow(b,3.)-4*a*b*c+8*a**2*d)/(8*pow(a,3.))

c2=conditional(lt(delta,0.), Constant(1.0), Constant(0.0))

notc2=conditional(ge(delta,0.), Constant(1.), Constant(0.))

Qo=(delta 1+sqrt(abs(-27*delta)))/2.

co=conditional(lt(Qo,0.), Constant(1.), Constant(0.))

Q = (-1)**(1*co)*pow(abs(Qo), 1./3.)*c2+1.*notc2

p proj = project(p, Ve2)

S2=(-2*p/3.+(1/(3*a))*(Q+delta 0/Q))*c2

S2 proj = project(S2, Ve2)

c3=conditional(ge(S2,-1e-10), Constant(1.), Constant(0.))

notc3=conditional(le(S2,0.), Constant(1.), Constant(0.))

S = (1./2.)*sqrt(abs(S2))*c2*c3+notc3*1.0

M1=(-4*S**2-2*p+q/S)*c2*c3

c4=conditional(ge(M1,0), Constant(1.), Constant(0.))

68

Page 69: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

M2=(-4*S**2-2*p-q/S)*c2*c3

c5=conditional(ge(M2,0), Constant(1.), Constant(0.))

// Y1**2/(Y1*Y2) = Y1/Y2 et Y2**2/(Y1*Y2) = Y2/Y1, pour les conditions sur la d�e�nition de theta (cfx2. Physique d'une cellule �a paroi) :

cond1 = conditional(lt(-b/(4.*a)-S+(1./2.)*sqrt(abs(M1)), Y1/Y2), Constant(1.), Constant(0.))cond2 = conditional(lt(-b/(4.*a)-S+(1./2.)*sqrt(abs(M1)), Y2/Y1), Constant(1.), Constant(0.))cond3 = conditional(lt(-b/(4.*a)-S-(1./2.)*sqrt(abs(M1)), Y1/Y2), Constant(1.), Constant(0.))cond4 = conditional(lt(-b/(4.*a)-S-(1./2.)*sqrt(abs(M1)), Y2/Y1), Constant(1.), Constant(0.))cond5 = conditional(lt(-b/(4.*a)+S+(1./2.)*sqrt(abs(M2)), Y1/Y2), Constant(1.), Constant(0.))cond6 = conditional(lt(-b/(4.*a)+S+(1./2.)*sqrt(abs(M2)), Y2/Y1), Constant(1.), Constant(0.))cond7 = conditional(lt(-b/(4.*a)+S-(1./2.)*sqrt(abs(M2)), Y1/Y2), Constant(1.), Constant(0.))cond8 = conditional(lt(-b/(4.*a)+S-(1./2.)*sqrt(abs(M2)), Y2/Y1), Constant(1.), Constant(0.))

cond1 1 = c2*c3*c4*cond1*cond2cond2 2 = c2*c3*c4*cond3*cond4cond3 3 = c2*c3*c5*cond5*cond6cond4 4 = c2*c3*c5*cond7*cond8

// Les racines sont :

r 1 = (-b/(4*a)-S+0.5*sqrt(abs(M1)))*cond1 1r 2 = (-b/(4*a)-S-0.5*sqrt(abs(M1)))*cond2 2r 3 = (-b/(4*a)+S+0.5*sqrt(abs(M2)))*cond3 3r 4 = (-b/(4*a)+S-0.5*sqrt(abs(M2)))*cond4 4

// Les racines "candidates" pour la valeur de theta de l'article sont donc :

theta 1=Y1*Y2*r 1theta 2=Y1*Y2*r 2theta 3=Y1*Y2*r 3theta 4=Y1*Y2*r 4

theta 1 proj = project(theta 1,Ve2)theta 2 proj = project(theta 2,Ve2)theta 3 proj = project(theta 3,Ve2)theta 4 proj = project(theta 4,Ve2)

print(theta 1 proj(r,0,0))print(theta 2 proj(r,0,0))print(theta 3 proj(r,0,0))print(theta 4 proj(r,0,0))

// En appendix B , theta est donnee par :

theta analytic 1 = Y2**2+sqrt(J2/(1.+func h))*Y2theta analytic 2 = Y2**2-sqrt(J2/(1.+func h))*Y2

theta analytic 1 proj = project(theta analytic 1,Ve2)theta analytic 2 proj = project(theta analytic 2,Ve2)

print(theta analytic 1 proj(r,0,0))print(theta analytic 2 proj(r,0,0))

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

69

Page 70: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

****** ANNEXE 7 *******

************************************************************************************************************

Correction �nale donnant le bon calcul du multiplicateur de Lagrange � de l'article, dans le�chier calcul racines fenics.py :

from future import print functionfrom dol�n import *from mshr import *

import mathimport u import numpy as npimport pickleimport time

// D�ebut du �chier sans int�eret ici :

[ ...................................................................]

a = (1.+func h)b = -2*a*(Y1/Y2+Y2/Y1)c = (a*((Y1/Y2)**2+(Y2/Y1)**2) - J2/Y1**2 + 4*a - J1/Y2**2)d =2*(Y1/Y2*(J2/Y1**2-a)+(J1/Y2**2-a)*Y2/Y1)e =-J1/Y1**2-J2/Y2**2+a

// Formule g�en�erale donn�ee sur Wikipedia mais adapt�ee au probl�eme cette fois-ci !

delta 0 = c**2-3*b*d + 12*a*edelta 1 = 2*pow(c,3.) - 9*b*c*d+ 27*b**2*e +27*a*d**2 - 72*a*c*edelta = (-1./27.)*(delta 1**2-4*pow(delta 0,3.))p = (8*a*c-3*b**2)/(8*a**2)q = (pow(b,3.)-4*a*b*c+8*a**2*d)/(8*pow(a,3.))

c2=conditional(le(delta,0.), Constant(1.0), Constant(0.0)) // c2=1 si delta � 0, c2 = 0 sinon .notc2=conditional(gt(delta,0.), Constant(1.), Constant(0.)) // notc2= 1 - c2 .

// D�e�nition de Q0 en tant que nombre complexe :

QoRe=(delta 1+c2*sqrt(abs(27*delta)))/2. // Partie r�eelle de Qo .QoIm=notc2*sqrt(abs(27*delta))/2. // Partie imaginaire de Qo .QoNo=sqrt(QoRe**2+QoIm**2) // Norme de Qo .

Qoargs=asin(QoIm/QoNo) // Arcsinus(Qo)Qoargc=acos(QoRe/QoNo) // Arccosinus(Qo)

coppo=conditional(le(Qoargs,0.), Constant(1.0), Constant(0.0))*(-1)+conditional(gt(Qoargs,0.), Constan-t(1.), Constant(0.))*1 // coppo = -1 si Arcsinus(Qo) � 0 , coppo = 1 sinon.

Qoarg= coppo*Qoargc // Qoarg = Arg(Qo) = coppo*Arccosinus(Qo) 2 [-�, +�] , Arg doit etre bijective.

// Pour calculer Q on doit choisir entre la racine cubique r�eelle (not�ee Q0) de Qo ou l'une de ses deux racinescubiques imaginaires, not�ee Q2 :

Q0Re =pow(QoNo,1/3.)*cos(Qoarg/3.) // Q0Re = Re(Qo1=3)Q0Im =pow(QoNo,1/3.)*sin(Qoarg/3.) // Q0Im = Im(Qo1=3)Q0No=sqrt(Q0Re**2+Q0Im**2) // Norme de Q0No

70

Page 71: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

Q2Re =pow(QoNo,1/3.)*cos(Qoarg/3.+2*pi/3) // Q2Re = Re(Qo1=3*exp(2*j*�/3)) , o�u j2 = -1 .Q2Im =pow(QoNo,1/3.)*sin(Qoarg/3.+2*pi/3) // Q2Im = Im(Qo1=3*exp(2*j*�/3)) , o�u j2 = -1 .

Rappel : S2=(-2*p/3.+(1/(3*a))*(Q+delta 0/Q))*c2 dans le code (incorrect) sans �elimination des racinesimaginaires.

S0Re=-2*p/3.+(1/(3*a))*(Q0Re+delta 0*Q0Re/Q0No**2) // Partie r�eelle de S2 .S0Im=1/(3*a)*(Q0Im-delta 0*Q0Im/Q0No**2) // Partie imaginaire de S2 .S0No=sqrt(S0Re**2+S0Im**2) // S0No = k S0 k2.

// Prise en compte de l'erreur num�erique sur la projection de la fonction conditional :

c000= conditional(gt(S0No,1e-12), 1., 0.) // c000 = 1 si S0No =pS0 > 10�12 , c000 = 0 sinon.

notc000= conditional(le(S0No,1e-12), 1., 0.) // notc000 = 1-c000 , et dans ce cas on prend une autre racinecubique, Q2 en l'occurrence.

// La troisi�eme racine cubique de Qo �etant le conjugu�e de Q2, consid�erer l'autre racine cubique imaginairede Qo revient au meme vu qu'elles donnent chacune la meme valeur du module de Q, not�e QNo ci-dessous.

// D�e�nition de Q en tant que nombre complexe :

QRe =Q0Re*c000+Q2Re*notc000QIm =Q0Im*c000+Q2Im*notc000QNo=sqrt(QRe**2+QIm**2)

// D�e�nition de S2 en tant que nombre complexe :

S2Re=-2*p/3.+(1/(3*a))*(QRe+delta 0*QRe/QNo**2)S2Im=1/(3*a)*(QIm-delta 0*QIm/QNo**2)S2No=sqrt(S2Re**2+S2Im**2)S2args=asin(S2Im/S2No)S2argc=acos(S2Re/S2No)

coppoS2=conditional(le(S2args,0.), Constant(1.0), Constant(0.0))*(-1)+conditional(gt(S2args,0.), Constan-t(1.), Constant(0.))*1

S2arg= coppoS2*S2argc // Arg(S2) 2 [-�, �]

// S = 0.5*pS2 :

SRe = (1./2.)*sqrt(S2No)*cos(S2arg/2.)SIm = (1./2.)*sqrt(S2No)*sin(S2arg/2.)SNo=sqrt(SRe**2+SIm**2)

// D�e�nition de M1 en tant que nombre complexe :

M1Re=-S2Re-2*p+q*SRe/SNo**2M1Im=-S2Im-q*SIm/SNo**2M1No=sqrt(M1Re**2+M1Im**2)M1args=asin(M1Im/M1No)M1argc=acos(M1Re/M1No)

coppoM1=conditional(le(M1args,0.), Constant(1.0), Constant(0.0))*(-1)+conditional(gt(M1args,0.), Con-stant(1.), Constant(0.))*1

M1Arg= coppoM1*M1argc

// D�e�nition de M2 en tant que nombre complexe (idem) :

M2Re=-S2Re-2*p-q*SRe/SNo**2M2Im=-S2Im+q*SIm/SNo**2

71

Page 72: UNIVERSIT E DE PAU ET DES PAYS DE L'ADOUR

M2No=sqrt(M2Re**2+M2Im**2)

M2args=asin(M2Im/M2No)M2argc=acos(M2Re/M2No)

coppoM2=conditional(le(M2args,0.), Constant(1.0), Constant(0.0))*(-1)+conditional(gt(M2args,0.), Con-stant(1.), Constant(0.))*1

M2Arg= coppoM2*M2argc

// D�e�nition des racines theta i en tant que nombres complexes :

theta 1Re = Y1*Y2*(-b/(4*a)-SRe+0.5*sqrt(M1No)*cos(M1Arg/2.))theta 2Re = Y1*Y2*(-b/(4*a)-SRe-0.5*sqrt(M1No)*cos(M1Arg/2.))theta 3Re = Y1*Y2*(-b/(4*a)+SRe+0.5*sqrt(M2No)*cos(M2Arg/2.))theta 4Re = Y1*Y2*(-b/(4*a)+SRe-0.5*sqrt(M2No)*cos(M2Arg/2.))

theta 1Im = Y1*Y2*(-SIm+0.5*sqrt(M1No)*sin(M1Arg/2.))theta 2Im = Y1*Y2*(-SIm-0.5*sqrt(M1No)*sin(M1Arg/2.))theta 3Im = Y1*Y2*(SIm+0.5*sqrt(M2No)*sin(M2Arg/2.))theta 4Im = Y1*Y2*(SIm-0.5*sqrt(M2No)*sin(M2Arg/2.))

// Condition "ne retenir que les racines r�eelles" (0 dans le cas imaginaire, avec une marge d'erreur num�eriquede projection prise �a 10�10 d'apr�es les tests) :

rcond1 = conditional(lt(theta 1Im/theta 1Re, 1e-10), Constant(1.), Constant(0.))rcond2 = conditional(lt(theta 2Im/theta 2Re, 1e-10), Constant(1.), Constant(0.))rcond3 = conditional(lt(theta 3Im/theta 3Re, 1e-10), Constant(1.), Constant(0.))rcond4 = conditional(lt(theta 4Im/theta 4Re, 1e-10), Constant(1.), Constant(0.))

// Condition de l'article :

cond1 = conditional(lt(theta 1Re, Y1**2), Constant(1.), Constant(0.))cond2 = conditional(lt(theta 1Re, Y2**2), Constant(1.), Constant(0.))cond3 = conditional(lt(theta 2Re, Y1**2), Constant(1.), Constant(0.))cond4 = conditional(lt(theta 2Re, Y2**2), Constant(1.), Constant(0.))cond5 = conditional(lt(theta 3Re, Y1**2), Constant(1.), Constant(0.))cond6 = conditional(lt(theta 3Re, Y2**2), Constant(1.), Constant(0.))cond7 = conditional(lt(theta 4Re, Y1**2), Constant(1.), Constant(0.))cond8 = conditional(lt(theta 4Re, Y2**2), Constant(1.), Constant(0.))

// Condition �nale pour obtenir la bonne racine � de l'article :

cond1 1 = rcond1 *cond1*cond2cond2 2 = rcond2*cond3*cond4cond3 3 = rcond3*cond5*cond6cond4 4 = rcond4*cond7*cond8

// La valeur du multiplicateur de Lagrange est alors donn�ee par :

theta bon =theta 1Re*cond1 1+theta 2Re*cond2 2+theta 3Re*cond3 3+theta 4Re*cond4 4

// �Evaluation et a�chage de theta bon en (r,0,0) :theta bon proj = project(theta bon, Ve2)print(theta bon proj(r,0,0))

******************************************************************************************************

72