quelques fonctionnalit es de freefem++ pour la cr eation ...+days/2009/presentation... · 14-15...

20
14-15 Septembre Journ´ ees FreeFem++ Quelques fonctionnalit´ es de Freefem++ pour la cr´ eation de maillages 3D Application au filet de pˆ eche C. Ody - R. Lewandowski Institut de recherche math´ ematique de Rennes (IRMaR) September 15, 2009 1

Upload: vukhanh

Post on 13-Mar-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Quelques fonctionnalites de Freefem++

pour la creation de maillages 3D

Application au filet de peche

C. Ody - R. LewandowskiInstitut de recherche mathematique de Rennes

(IRMaR)

September 15, 2009

1

Page 2: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Cadre de l’etude : La surpeche (Framework : Overfishing)

Figure: Extraits d’un rapport de 2004.

2

Page 3: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Lutte contre la surpeche (Limiting overfishing)

1. Peche raisonnee et durable

2. Politique des quotas

3. Amelioration des techniques de peche et de la selectivite des filets

3

Page 4: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Amelioration de la selectivite des filets(Improving net selectivity)

1. Campagnes en mer

2. Experiences sur modeles reduits

Figure: Maquette IFREMER.

3. Simulations numeriques

4

Page 5: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Cahier des charges de la simulation numerique(Numerical simulation of flow through nets)

Prise en compte de

1. l’ecoulement (turbulent) autour et au travers du filet

2. le mouvement et la deformation du filet

3. le deplacement et la prise des poissons

→ Interaction complexe entre ces trois aspects

5

Page 6: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Cahier des charges de la simulation numerique(Numerical simulation of flow through nets)

Prise en compte de

1. l’ecoulement (turbulent) autour et au travers du filet

2. le mouvement et la deformation du filet

3. le deplacement et la prise des poissons

→ Interaction complexe entre ces trois aspects

Premiere etape : simuler l’ecoulement

1. prendre en compte le filet et les poissons

2. proposer une methode qui permette la prise en compte future del’interaction ecoulement-filet

3. simuler l’ecoulement en 3D

6

Page 7: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Methode proposee (These de G. Pichot)Observations experimentales realisees a l’IFREMER:

Figure: Filet et profil superieur correspondant.

7

Page 8: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Methode proposee (These de G. Pichot)

Modelisation du filet et des poissons par une membrane poreuse

Figure: Le filet vu comme une membrane poreuse composee de 5 sous-domaines

→ Terme de penalisation ajoute dans les equations de Navier-Stokesu

K(x,t) → Introduction d’une permeabilite K (x, t) qui varie selon lesous-domaine

8

Page 9: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Debut du travail en 3D a l’aide de FreeFEM++

Structure du code:

// Main//=====

// load ”msh3” , l oad ” t e t g en ” , l o ad ”medit ”i n c l u d e ” i n c l u d e s a n d p a r ame t e r s . edp” ;

// C r e a t i o n du f i l e t 3Di n c l u d e ” net mesh . edp” ;

// C r e a t i o n d ’ un ma i l l a g e non conformei n c l u d e ” s imple 3D mesh . edp” ;

// Espaces f o n c t i o n n e l s e t v a r i a b l e si n c l u d e ” f e f u n c t i o n s . edp” ;

// P r o j e c t i o n de l a p e rm e a b i l i t e s u r l e ma i l l a g e non conformei n c l u d e ” p e rme a b i l i t y p r o j e c t i o n o n n o n c o n f o rma l m e s h . edp” ;

// Resout Nav i e r S t o k e s s u r ma i l l a g e non conformei n c l u d e ” s o l v e N a v i e r S t o k e s . edp” ;

9

Page 10: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Creation d’un filet avec differents sous-domaines

Figure: Le filet 3d et les 5 sous-domaines

→ 5 sous-domaines de revolution obtenus a partir du filet 2d → Maillagevolumique obtenu apres l’addition des 5 maillages surfaciques

correspondants

10

Page 11: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

// Fonc t i on pour l a c r e a t i o n d ’ un ma i l l a g e s u r f a c i q u e de r e v o l u t i o n a p a r t i r d ’ un p r o f i l 2Df unc mesh3 Re v o l u t i o nSu r f a c e ( i n t numf i l e , i n t [ i n t ] & pos , i n t o r i e n t , i n t n the ta ){. . .}

// Maini n t o r i e n t a t i o n =1;i n t n the ta =50;

// Su r f a c e de r e v o l u t i o n 1i n t [ i n t ] p o i n t s 1 = [0 , 2 , 3 , 5 ] ;mesh3 Su r f a c e1=Revo l u t i o nSu r f a c e (1 , po i n t s1 , o r i e n t a t i o n , n the ta ) ;

// Su r f a c e de r e v o l u t i o n 1i n t [ i n t ] p o i n t s 2 = [0 , 3 , 4 , 1 1 ] ;mesh3 Su r f a c e2=Revo l u t i o nSu r f a c e (2 , po i n t s2 , o r i e n t a t i o n , n the ta ) ;

. . . .

// Add i t i o n des m a i l l e s s u r f a c i q u e s pour o b t e n i r avant l e ma i l l a g e vo lumiquemesh3 F i l e t S u r f a c e=Su r f a c e1+Su r f a c e2 +.. .+ Su r f a c e5 ;

Figure: Le filet 3d compose de 5 sous-domaines

11

Page 12: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

On part d’un fichier de points .txt qui correspondent au profil 2D dechaque sous-domaine.

7 // −−> Nombre de l i g n e s du f i c h i e r596 53 .16770 110 .98770 203 .35747 195 .5696 176647 154596 130 .5

Au debut de la fonction, on importe ces points dans deux tableaux, unpour les abscisses, un pour les ordonnees:

f unc mesh3 Re v o l u t i o nSu r f a c e ( i n t numf i l e , i n t [ i n t ] & pos , i n t o r i e n t , i n t n the ta ){

// Ouve r tu re du f i c h i e r ” geometry4 . t x t ”i f s t r e am f i l e ( ” geometry ”+numf i l e+” . t x t ” ) ;

// Lec tu r e du nombre de l i g n e si n t nn=0;f i l e >> nn ;

// De c l a r a t i o n des t a b l e a u x pour l e s a b s c i s s e s e t l e s ordonn \ ’ e e sr e a l [ i n t ] Netx ( nn ) , Nety ( nn ) ; // abs e t ord des noeuds

// Lec tu r e du f i c h i e rf o r ( i n t i =0; i<nn ; i++) f i l e >> Netx [ i ] >> Nety [ i ] ;

12

Page 13: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Ensuite, on cree des fonctions (a l’interieur de la fonction principale)pour realiser une interpolation lineaire de la position des points situesentre deux points consecutifs du tableau

// I n t e r p o l a t i o n pour Xf unc r e a l Xnet ( r e a l t ){

i n t i=min ( i n t ( t ) , Netx . n−2);r e a l t1=t−i , t0=1−t1 ;r e t u r n Netx [ i ]∗ t0 + Netx [ i +1]∗ t1 ;}

// I n t e r p o l a t i o n pour Yf unc r e a l Ynet ( r e a l t ){

i n t i=min ( i n t ( t ) , Netx . n−2);r e a l t1=t−i , t0=1−t1 ;r e t u r n Nety [ i ]∗ t0 + Nety [ i +1]∗ t1 ;}

On definit donc notamment les border a partir de ces fonctions

// C r e a t i o n des f r o n t i e r e s du domaineborder bo tbo rde r ( t =0, p o i n t s [ 1 ] ) { x = Xnet ( t ) ; y = Ynet ( t ) ; } // Bottom bo rde rborder r i g h t b o r d e r ( t =0 ,1) { x = XnetR ; y = YnetR ( t ) ; } // R ight bo rde rborder t opbo rde r ( t=po i n t s [ 2 ] , p o i n t s [ 3 ] ) { x = Xnet ( t ) ; y = Ynet ( t ) ; } // Top bo rde rborder l e f t b o r d e r ( t =0 ,1) { x = XnetL ; y = YnetL ( t ) ; } // L e f t Border

// Trace co r r e s pondan ti n t nh=20; i n t nv=20;p l o t ( bo tbo rd e r ( nh)+ r i g h t b o r d e r ( nv)+ topbo rde r ( nh)+ l e f t b o r d e r ( nv ) , wa i t =1);

13

Page 14: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Figure: Trace des frontieres

On maille (notez l’option fixeborder pour garder les points du tableau):

mesh Th=bui ldmesh ( bo tbo rd e r ( nh)+ r i g h t b o r d e r ( nv)+ topbo rde r ( nh)+ l e f t b o r d e r ( nv ) ,f i x e b o r d e r =1);

Figure: Maillage 2d

14

Page 15: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Maintenant, on va creer un maillage surfacique 3D a partir de cemaillage. On fera ensuite une transformation pour obtenir la surface derevolution. Les etapes sont donc les suivantes:

Figure: Du 2d au 3d

15

Page 16: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

On obtient tout d’abord les faces avant et arriere en utilisant la fonctionmovemesh23

// T r a n s l a t i o n o f Th to ge t f r o n t ( at z=2p i ) and r e a r ( at z=0) f a c e s o f s u r f a c e meshi n t [ i n t ] r r e a r =[0 ,1 ] , r f r o n t = [ 0 , 2 ] ;mesh3 Threar = movemesh23 (Th , t r a n s f o =[x , y , 0 . ] , r e f f a c e=r r e a r , o r i e n t a t i o n=−o r i e n t ) ;mesh3 Thf ront = movemesh23 (Th , t r a n s f o =[x , y , 2 .∗ p i ] , r e f f a c e=r f r o n t , o r i e n t a t i o n=o r i e n t ) ;

De facon similaire, on obtiendra les faces laterales, et celles du dessus etdu dessous et on les additionne pour obtenir la surface intermediaire

// Add i t i o n des s u r f a c e s obtenuesmesh3 Su r f aceLongueu r2P i=Threar+Thf ront+Thtop+Thbot+Th l e f t+Thr i gh t ;

Figure: 3d mesh of length 2π

16

Page 17: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Pour obtenir finalement la surface de revolution, on utilise la fonctionmovemesh3 avec l’option facemerge pour fusionner les faces qui vontvenir se coller.

// Trans fo rmat i on de l a s u r f a c e pour f a i r e l a r e v o l u t i o nmesh3 S u r f a c e F i n a l e=movemesh3 ( Sur faceLongueur2P i , t r a n s f o =[x , y∗cos ( z ) , y∗ s i n ( z ) ] , f acemerge =2);

// Fonc t i on pour l a c r e a t i o n d ’ un ma i l l a g e s u r f a c i q u e de r e v o l u t i o n a p a r t i r d ’ un p r o f i l 2Df unc mesh3 Re v o l u t i o nSu r f a c e ( i n t numf i l e , i n t [ i n t ] & pos , i n t o r i e n t , i n t n the ta ){. . .

// Retourne l e ma i l l a g e s u r f a c i q u e 3dr e t u r n S u r f a c e F i n a l e ;}

// Maini n t o r i e n t a t i o n =1;i n t n the ta =50;

// Su r f a c e de r e v o l u t i o n 1i n t [ i n t ] p o i n t s 1 = [0 , 2 , 3 , 5 ] ;mesh3 Su r f a c e1=Revo l u t i o nSu r f a c e (1 , po i n t s1 , o r i e n t a t i o n , n the ta ) ;

. . . .

// Add i t i o n des m a i l l e s s u r f a c i q u e s pour o b t e n i r avant l e ma i l l a g e vo lumiquemesh3 F i l e t S u r f a c e=Su r f a c e1+Su r f a c e2 +.. .+ Su r f a c e5 ;

17

Page 18: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

Maintenant, il reste a mailler la surface obtenue. On utilise tetgen selon

r e a l [ i n t ] p o i n t s i n t e r i e u r s = [ 65 , 0 , 3 0 , 1 7 , 1 00 , 1 90 , 0 , 3 8 , 1 9 , 1 00 , 5 90 , 0 . , 5 4 . , 1 8 , 1 00 , 5 97 . , 0 . , 5 4 . , 2 0 , 1 00 , 1 000 , 0 , 0 , 2 1 , 1 00 ] ; //mesh3 F i l e tVo lume= t e t g ( F i l e t S u r f a c e , sw i t ch=”paAQ” , n b o f r e g i o n s =5, r e g i o n l i s t=p o i n t s i n t e r i e u r s ) ;

On peut definir la permeabilite sur le filet

f e space Vh conforme ( F i l e tVo lume , P0 ) ;Vh conforme k ;k conforme=0∗( r eg i on==17)+10∗( r eg i on==18)+0∗( r eg i on==19)+20∗( r eg i on==20)+25∗( r eg i on ==21);

Figure: Le filet 3d compose de 5 sous-domaines

18

Page 19: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

On va projeter sur un maillage non conforme. On cree ce maillage enprenant la fonction SurfaceHex.edp et tetgen de mesh surface.idp.On pourrait egalement utiliser la fonction buildlayer.

mesh3 PaveSu r f a c i que = Sur faceHex (N,B , L , 1 ) ;mesh3 PaveVolumique = t e t g ( PaveSur fac ique , sw i t c h=”pqaAQ” , n b o f r e g i o n s =1, r e g i o n l i s t=domaine ) ;

Figure: Maillage non conforme19

Page 20: Quelques fonctionnalit es de Freefem++ pour la cr eation ...+days/2009/presentation... · 14-15 Septembre Journ ees FreeFem++ Lutte contre la surp^eche (Limiting over shing) 1.P^eche

14-15 Septembre Journees FreeFem++

f e space Vh non conforme ( PaveVolumique , P0 ) ;Vh non conforme k non confo rme ;k non confo rme=k conforme ; // I n t e r p o l a t i o n / P r o j e c t i o n between the 2 meshes

Figure: Permeabilite sur maillage non conforme20