Cette page contient les renseignements pour le cours MAP559.
  • Memento Freefem++

  • Projets:
  • Christoph WEBER : Which mesh for which Reynolds number
  • Thibault MUKERJEE : Rotating cylinder
  • Yohanes TJANDRAWIDJAJA : Rotating cylinder
  • Louis THIRY : Airfoil
  • Louise YU : Free fall
  • Augustin PAUCHON : Free fall
  • Riccardo MILANI : Waves on the beach
  • Mickael GRIMA : Waves on the beach
  • Daniel SUARES : Rayleigh-Taylor instability
  • Gabriel ROVINA : Free convection
  • Guilherme SALVADOR : Free convection
  • Chongmo LIU : Arterial circulation
  • Nathan ECKERT : Minimisation of the drag
  • Carlos Casanovas : Waves on the beach


  • Références pour le cours
  • R. Temam, Navier-Stokes Equations, Theory and Numerical Analysis, AMS Chelsea Publishing, 2001.
  • F. Boyer et P. Fabrie, Eléments d'analyse pour l'étude de quelques modèles d'écoulements de fluides visqueux incompressibles, Springer, Coll. Mathématiques et Applications, Vol. 52.
  • D. Braess, Finite Elements, Theory, fast solvers and applications in solid mechanics, Cambridge University Press.
  • A. Miranville et R. Temam, Modélisation mathématique et mécanique des milieux continus, Springer, Coll. Scopos, Vol. 18.


  • Proposition de "corrigés" FreeFem++ (Bertrand Maury)

    Problème de Stokes, suivi Lagrangien
    COR_Stokes.edp
    Résout le  problème de Stokes dans un carré posé sur un support
    Le maillage suit le mouvement du fluide (approche Lagrangienne)
    Attention : Ce code utilise des macros pour définir les opérateur différentiel agissant sur la vitesse


    Résolution des équations de Navier-Stokes autour d'un cylindre:
    COR_NS.cyl.edp
    - Ce fichier contient un calcul du tourbillon:
    calcul brutal par 
    om=dy(ux)-dx(uy);
    puis lissage pour construire une version P1 de om (notée som dans le code)
    C'est le tourbillon qui est représenté

    - Sauvergarde des résultats :
    dans la version en ligne, les images sont stockées dans un fichier qui a toujours le même nom : velo.ps (renouvelé donc à chaque itération en temps).
    Si l'on décommente la ligne :
    fname = fn + "vv"+ iter + ".ps";
    toutes les figures sont sauvées : ./RES/vv0000.ps,  ./RES/vv0001.ps, ...
    ce qui permet de faire des animations à partir des images.
    Attention : il faut créer au préalable un sous répertoire RES, et prendre garde au fait que cela charge le disque dur (à peu près 1 Mo par image)


    Divers

    Géométrie cylindre

    int N = 20, NB = 2*N , Niter = 200 ;
    real dt = 0.02  , L=2 , Re = 100 , a = 1/dt ;
    real xB = 0.5 , yB = 0.5 , rB = 0.1  , nu = 2*rB / Re;

     border Gs(t=0,L){x=t;y=0;label=1;}
     border Ge(t=0,1){x=L;y=t;label=2;}
     border Gn(t=0,L){x=L-t;y=1;label=3;}
     border Gw(t=0,1){x=0;y=1-t;label=4;}
     border Gin (t=0,2*pi){x=xB+rB*cos(t);y=yB+rB*sin(t);label=5;}
     mesh Th=buildmesh(Gs(L*N)+Ge(N)+Gn(L*N)+Gw(N)+Gin(-NB));



    Visualiser le tourbillon

    fespace Mh(Th,P0) ;
    Xh som, tsom ;

    problem CompSom(som,tsom)=                // projection onto P1, to regularize
          int2d(Th)(som*tsom)
           -int2d(Th)(om*tsom) ;

    // Once [ux,uy] has been computed
        om=dy(ux)-dx(uy); CompSom ;
        plot(som,fill=1,grey=1,wait=0,nbiso=50,);   // In grey scale


    Faire une coupe

    int Nx = 200 ;
      real[int] xx(Nx),uu(Nx),uuB(Nx);
      for(int i=0 ; i<Nx ; i++){
         xx(i) = i/real(Nx) ;
         uu(i) = p(xx(i),0.5 + rB*1.1);
      }
     plot([xx,uu] ,wait=0,ps="prescoupe.ps");








    Réaliser une animation sous FreeFem++ :

    string fn="./RES/", fname ;
    // boucle en temps :
    for (int iter=1000 ; iter<=Niter+1000 ; iter++) {
           ......
            fname = fn + "vv"+ iter + ".ps";
            plot(u,ps=fname);
    }

CMAP UMR 7641 École Polytechnique CNRS, Route de Saclay, 91128 Palaiseau Cedex France, Tél: +33 1 69 33 46 00 Fax: +33 1 69 33 46 46