Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages
Autres langages Clipper, D, Eiffel, Forth, FoxPro, Kpl, NSDK, R, Rebol, Smalltalk, ... Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/03/2012, 13h13   #1
kevin1234
Invité de passage
 
Femme
Étudiant
Inscription : mars 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2012
Messages : 1
Points : 0
Points : 0
Par défaut [FreeFem] Equation de Stokes

Bonjour

Je travaille sur un projet sur les équations de Stokes à l'aide du logiciel FreeFem, que je ne maîtrise pas beaucoup.
Je dois calculer les valeurs propres associées a Stokes. J'ai realisé un code mais j'ai une erreur de compilation. Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
real s0=clock();
int n=25;
mesh Th=square(n,n);

real[int,int] Bb((n+1)*(n+1)+2*(n-1)*(n-1)+8*n,(n+1)*(n+1)+2*(n-1)*(n-1)+8*n);
fespace Xh(Th,P2) ;
 Xh u1,u2,v1,v2 ;
fespace Mh(Th,P1) ;
 Mh p,q ;
fespace XhxXhxMh(Th,[P1,P1,P1]);
int i=0,iter=0;
solve stokes([u1,u2,p],[v1,v2,q]) = int2d(Th)((dx(u1)*dx(v1)+dy(u1)*dy(v1)
+ dx(u2)*dx(v2)+dy(u2)*dy(v2))
- p*q*(0.000001)
- p*(dx(v1)+dy(v2))
- q*(dx(u1)+dy(u2)))
+ on(1,2,4,u1=0,u2=0)
+ on(3,u1=1,u2=0) ;
plot([u1,u2],p,ps="stokes_exple.eps") ;

matrix A= vfstokes(XhxXhxMh,XhxXhxMh,solver=Crout,factorize=1);
Bb=0;
for(int i=0;i<(n+1)*(n+1)+2*(n-1)*(n-1)+8*n;++i)
Bb(i,i)=1;
matrix B;
B=Bb;
real sigma=0;
int nev=200; //nombre de valeurs propres autour de sigma
real[int] ev(nev); // stocker les 200 valeurs propres
XhxXhxMh [int] [eu1,eu2,ep](nev);// stocker les 200 vecteurs propres
int k=EigenValue(A,B,sym=true,sigma=0,value=ev,vector=eu1,tol=1e-10,maxit=0,ncv=0);
k=min(k,nev);

for(int i=0;i<k;i++)
{
cout<<"valeur propre:"<<i<<":"<<ev[i]<<endl;
u1=eu1[i];
u2=eu2[i];
p=ep[i];
plot([u1,u2],p,cmm="Eigen Vector "+i+"valeur="+ ev[i],wait=1,value=1,ps="stockes-eigen-p1-p1"+i+".eps");
}
cout <<"CPU"<<clock()-s0 <<"s"<<endl;
assert(abs(ev[0]-52.3471<0.1);
Lorsque je compile ce programme, j'ai une erreur de compilation qui dit que vfstokes est inconnu ; or c'est une fonction de FreeFem.

Si vous pouvez m'aider à debugger cette erreur, ce serait super gentil et ça me débloquerait pour la suite.

Merci.
kevin1234 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h31.


 
 
 
 
Partenaires

Hébergement Web