Hi Dominique.
Le lundi 21 mai 2007, Dominique Deloison a écrit :
> Hi Stéphane,
>
> Thank you for your quick answer. I have however still some problems.
>
> To answer your question, I found the out-of-date" navier-stokes"
> example here: http://www.freefem.org/ff3d/examples.html
Ooops. These are really obsolete. The same applies for the online
documentation...
I have just updated the files.
> Concerning the files you sent me, I have the following comments:
> 1) - during the resolution, the following warning appears:
> "implementation not finished! use of dofposition required". Is is a
> problem?
This is not important. It is just a reminder for fictitious domain
development...
> 2) - the size of each element (0.1) is the same than the
> radius of the cylinder, so it is very difficult to recognize anything and
> to be able to decide whether the solution looks reasonable or not. I guess
> I have to increase the number of elements.
Yes. This is just an example of use, it might not be anyway physical...
By the ways I don't know why the cylinder size changed...
I just have been looking to it and it seems to me that it is not a good
example. So I slightly changed the example. You can download it from the web
site...
> 3) - the syntax of the "convect" operator is different than the
> one used in the documentation.
> According to the documentation, the syntax is:
> "convect(phi,ux,uy,uz)".
> In the file there is: "convect([u0,v0,w0],dt,u0)" which is
> identical to the freefem++ syntax.
Yes. The online manual was also obsolete. I just put a newer version, sorry
for the confusion...
> 4) - I have difficulties to figure out the mathematical description
> of the problem described in the example file. For me it looks like a
> transient problem. I would be interested in a stationnary solution as
> described by the equations I wrote in my previous mail. Is there a non
> time dependent version of the convect operator ?
Yes. This is a transient resolution...
There is no stationary convect operator, but, you can write a fix point
algorithm. I join you an example.
> 5) I tried to postprocess the streamlines with medit (I wrote an .iso
> file to describe the seeding points). I was unsuccessful (segmentation
> fault). have you ever tried this with this example?
The reason is that medit is not very good for hexahedra.
In the joined file I use a tetrahedrization of the mesh and an alternative VTK
output.
I hope that helps. Thanks for your reports.
Best regards,
Stéphane.
// -*- c++ -*-
// This file is part of ff3d - http://www.freefem.org/ff3d
// Copyright (C) 2003 Laboratoire J.-L. Lions UPMC Paris
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2, or (at your option)
// any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// $Id: stokes.ff,v 1.5 2005/11/28 00:54:32 delpinux Exp $
// Stokes equations
vector n = (10,10,10);
vertex A = (0,0,0);
vertex B = (1,1,1);
mesh M = structured(n,A,B);
function teta0 = 0;
double eps = 1e-2;
function u1n=0;
function u2n=0;
function u3n=0;
function u1=0;
function u2=0;
function u3=0;
function p =0;
double i=0;
do {
solve(u1,u2,u3,p) in M
krylov(precond=diagonal,type=bicg),
cg(epsilon=1e-5) {
test(U1,U2,U3,P)
int(grad(u1)*grad(U1) - p*dx(U1)
+grad(u2)*grad(U2) - p*dy(U2)
+grad(u3)*grad(U3) - p*dz(U3)
+u1n*dx(u1)*U1+u2n*dx(u2)*U2+u3n*dx(u3)*U3
-eps*grad(p)*grad(P) - eps*p*P
-dx(u1)*P - dy(u2)*P - dz(u3)*P) = 0;
u1 = 0 on M xmin;
u1 = 0 on M xmax;
u1 = 0 on M ymin;
u1 = 1 on M ymax;
u1 = 0 on M zmin;
u1 = 0 on M zmax;
u2 = 0 on M;
u3 = 0 on M;
};
u1n=u1;
u2n=u2;
u3n=u3;
i++;
} while (i<=3);
// Post-processing
mesh T = tetrahedrize(M);
save(medit,"velocity",T);
save(medit,"velocity",[u1, u2, u3],T);
save(medit,"pressure",T);
save(medit,"pressure",p,T);
save(vtk,"ns",{[u1,u2,u3],p},T);_______________________________________________
ff3d-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/ff3d-users