
-
Cette page contient les renseignements pour le cours MAP559.
- Memento Freefem++
- 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. 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.
Projets:
Références pour le cours
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);
}